Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-django-allauth for 
openSUSE:Factory checked in at 2026-04-04 19:06:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-allauth (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-allauth.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-allauth"

Sat Apr  4 19:06:55 2026 rev:17 rq:1344468 version:65.15.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-django-allauth/python-django-allauth.changes  
    2026-03-23 17:12:06.118514390 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-django-allauth.new.21863/python-django-allauth.changes
   2026-04-04 19:08:53.940769802 +0200
@@ -1,0 +2,13 @@
+Fri Apr  3 12:50:22 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 65.15.1:
+  * The context data for the various entrance views was
+    inconsistent, e.g. some where missing site or login_url.
+    Ensured all entrance views are now handed over the same base
+    context.
+  * MFA: accessing the WebAuthn login view while already being
+    authenticated resulted in a 500, fixed.
+  * OAuth 1.0: Fixed an argument call order issue when performing
+    requests.
+
+-------------------------------------------------------------------

Old:
----
  django_allauth-65.15.0.tar.gz

New:
----
  django_allauth-65.15.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-allauth.spec ++++++
--- /var/tmp/diff_new_pack.TTZONp/_old  2026-04-04 19:08:54.488792271 +0200
+++ /var/tmp/diff_new_pack.TTZONp/_new  2026-04-04 19:08:54.488792271 +0200
@@ -38,7 +38,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-django-allauth
-Version:        65.15.0
+Version:        65.15.1
 Release:        0
 Summary:        Django authentication, registration, account management
 License:        MIT

++++++ django_allauth-65.15.0.tar.gz -> django_allauth-65.15.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/.gitignore 
new/django_allauth-65.15.1/.gitignore
--- old/django_allauth-65.15.0/.gitignore       2026-03-05 16:24:18.000000000 
+0100
+++ new/django_allauth-65.15.1/.gitignore       2026-04-02 10:59:04.000000000 
+0200
@@ -45,3 +45,5 @@
 
 # pre-commit
 .pre-commit-config.yaml
+/.agent-shell/
+.venv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/ChangeLog.rst 
new/django_allauth-65.15.1/ChangeLog.rst
--- old/django_allauth-65.15.0/ChangeLog.rst    2026-03-09 14:26:25.000000000 
+0100
+++ new/django_allauth-65.15.1/ChangeLog.rst    2026-04-02 11:13:16.000000000 
+0200
@@ -1,4 +1,4 @@
-65.15.0 (2025-03-09)
+65.15.1 (2026-04-02)
 ********************
 
 .. note::
@@ -7,6 +7,23 @@
     Please consider supporting its continued development by becoming a sponsor 
at
     https://allauth.org/sponsors/. Your support helps keep this project 
thriving!
 
+
+Fixes
+-----
+
+- The context data for the various entrance views was inconsistent, e.g. some
+  where missing ``site`` or ``login_url``. Ensured all entrance views are now
+  handed over the same base context.
+
+- MFA: accessing the WebAuthn login view while already being authenticated 
resulted
+  in a 500, fixed.
+
+- OAuth 1.0: Fixed an argument call order issue when performing requests.
+
+
+65.15.0 (2026-03-09)
+********************
+
 Note worthy changes
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/PKG-INFO 
new/django_allauth-65.15.1/PKG-INFO
--- old/django_allauth-65.15.0/PKG-INFO 2026-03-09 14:43:55.937676700 +0100
+++ new/django_allauth-65.15.1/PKG-INFO 2026-04-02 11:16:36.305707700 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: django-allauth
-Version: 65.15.0
+Version: 65.15.1
 Summary: Integrated set of Django applications addressing authentication, 
registration, account management as well as 3rd party (social) account 
authentication.
 Author-email: Raymond Penners <[email protected]>
 License: MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/allauth/__init__.py 
new/django_allauth-65.15.1/allauth/__init__.py
--- old/django_allauth-65.15.0/allauth/__init__.py      2026-03-09 
14:29:35.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/__init__.py      2026-04-02 
11:13:16.000000000 +0200
@@ -8,7 +8,7 @@
 
 """
 
-VERSION = (65, 15, 0, "final", 0)
+VERSION = (65, 15, 1, "final", 0)
 
 __title__ = "django-allauth"
 __version_info__ = VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/allauth/account/internal/templatekit.py 
new/django_allauth-65.15.1/allauth/account/internal/templatekit.py
--- old/django_allauth-65.15.0/allauth/account/internal/templatekit.py  
1970-01-01 01:00:00.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/account/internal/templatekit.py  
2026-04-01 23:49:17.000000000 +0200
@@ -0,0 +1,70 @@
+from typing import Any
+
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.contrib.sites.shortcuts import get_current_site
+from django.http import HttpRequest
+from django.urls import NoReverseMatch, reverse
+
+from allauth import app_settings as allauth_settings
+from allauth.account import app_settings
+from allauth.account.utils import passthrough_next_redirect_url
+
+
+def get_entrance_context_data(request: HttpRequest) -> dict[str, Any]:
+    passkey_login_enabled = False
+    passkey_signup_enabled = False
+    if allauth_settings.MFA_ENABLED:
+        from allauth.mfa import app_settings as mfa_settings
+
+        passkey_login_enabled = mfa_settings.PASSKEY_LOGIN_ENABLED
+        passkey_signup_enabled = mfa_settings.PASSKEY_SIGNUP_ENABLED
+
+    ret: dict[str, Any] = {}
+    signup_url = None
+    if not allauth_settings.SOCIALACCOUNT_ONLY:
+        try:
+            signup_url = passthrough_next_redirect_url(
+                request,
+                reverse("account_signup"),
+                REDIRECT_FIELD_NAME,
+            )
+        except NoReverseMatch:
+            # There may project specific tweaks other than
+            # SOCIALACCOUNT_ONLY ...
+            pass
+    site = get_current_site(request)
+    login_url = passthrough_next_redirect_url(
+        request,
+        reverse("account_login"),
+        REDIRECT_FIELD_NAME,
+    )
+
+    signup_by_passkey_url = None
+    if passkey_signup_enabled:
+        signup_by_passkey_url = passthrough_next_redirect_url(
+            request,
+            reverse("account_signup_by_passkey"),
+            REDIRECT_FIELD_NAME,
+        )
+
+    ret.update(
+        {
+            "signup_url": signup_url,
+            "signup_by_passkey_url": signup_by_passkey_url,
+            "login_url": login_url,
+            "site": site,
+            "SOCIALACCOUNT_ENABLED": allauth_settings.SOCIALACCOUNT_ENABLED,
+            "SOCIALACCOUNT_ONLY": allauth_settings.SOCIALACCOUNT_ONLY,
+            "LOGIN_BY_CODE_ENABLED": app_settings.LOGIN_BY_CODE_ENABLED,
+            "PASSKEY_LOGIN_ENABLED": passkey_login_enabled,
+            "PASSKEY_SIGNUP_ENABLED": passkey_signup_enabled,
+        }
+    )
+    if app_settings.LOGIN_BY_CODE_ENABLED:
+        request_login_code_url = passthrough_next_redirect_url(
+            request,
+            reverse("account_request_login_code"),
+            REDIRECT_FIELD_NAME,
+        )
+        ret["request_login_code_url"] = request_login_code_url
+    return ret
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/allauth/account/mixins.py 
new/django_allauth-65.15.1/allauth/account/mixins.py
--- old/django_allauth-65.15.0/allauth/account/mixins.py        2026-03-05 
20:17:28.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/account/mixins.py        2026-04-01 
22:43:05.000000000 +0200
@@ -54,10 +54,19 @@
         return response
 
     def get_authenticated_redirect_url(self):
-        redirect_field_name = self.redirect_field_name
+        redirect_field_name = getattr(self, "redirect_field_name", 
REDIRECT_FIELD_NAME)
+        url = None
+        if hasattr(self, "get_success_url"):
+            try:
+                url = self.get_success_url()
+            except ImproperlyConfigured:
+                # If a view does not provide a `success_url`, Django raises a
+                # "No URL to redirect to. Provide a success_url." exception.
+                # That is no issue in our case.
+                pass
         return get_login_redirect_url(
             self.request,
-            url=self.get_success_url(),
+            url=url,
             redirect_field_name=redirect_field_name,
         )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/allauth/account/views.py 
new/django_allauth-65.15.1/allauth/account/views.py
--- old/django_allauth-65.15.0/allauth/account/views.py 2026-03-09 
14:25:50.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/account/views.py 2026-04-01 
23:49:40.000000000 +0200
@@ -2,12 +2,11 @@
 
 from django.contrib import messages
 from django.contrib.auth.decorators import login_required
-from django.contrib.sites.shortcuts import get_current_site
 from django.core.exceptions import PermissionDenied
 from django.core.validators import validate_email
 from django.forms import Form, ValidationError
 from django.http import Http404, HttpResponse, HttpResponseBase, 
HttpResponseRedirect
-from django.urls import NoReverseMatch, reverse, reverse_lazy
+from django.urls import reverse, reverse_lazy
 from django.utils.decorators import method_decorator
 from django.utils.functional import cached_property
 from django.views.decorators.cache import never_cache
@@ -41,6 +40,7 @@
 from allauth.account.internal.flows.email_verification import (
     send_verification_email_to_address,
 )
+from allauth.account.internal.templatekit import get_entrance_context_data
 from allauth.account.mixins import (
     AjaxCapableProcessFormViewMixin,
     CloseableSignupMixin,
@@ -112,37 +112,8 @@
             return e.response
 
     def get_context_data(self, **kwargs) -> dict:
-        passkey_login_enabled = False
-        if allauth_app_settings.MFA_ENABLED:
-            from allauth.mfa import app_settings as mfa_settings
-
-            passkey_login_enabled = mfa_settings.PASSKEY_LOGIN_ENABLED
         ret = super().get_context_data(**kwargs)
-        signup_url = None
-        if not allauth_app_settings.SOCIALACCOUNT_ONLY:
-            try:
-                signup_url = 
self.passthrough_next_url(reverse("account_signup"))
-            except NoReverseMatch:
-                # There may project specific tweaks other than
-                # SOCIALACCOUNT_ONLY ...
-                pass
-        site = get_current_site(self.request)
-
-        ret.update(
-            {
-                "signup_url": signup_url,
-                "site": site,
-                "SOCIALACCOUNT_ENABLED": 
allauth_app_settings.SOCIALACCOUNT_ENABLED,
-                "SOCIALACCOUNT_ONLY": allauth_app_settings.SOCIALACCOUNT_ONLY,
-                "LOGIN_BY_CODE_ENABLED": app_settings.LOGIN_BY_CODE_ENABLED,
-                "PASSKEY_LOGIN_ENABLED": passkey_login_enabled,
-            }
-        )
-        if app_settings.LOGIN_BY_CODE_ENABLED:
-            request_login_code_url = self.passthrough_next_url(
-                reverse("account_request_login_code")
-            )
-            ret["request_login_code_url"] = request_login_code_url
+        ret.update(get_entrance_context_data(self.request))
         return ret
 
 
@@ -186,11 +157,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
-        passkey_signup_enabled = False
-        if allauth_app_settings.MFA_ENABLED:
-            from allauth.mfa import app_settings as mfa_settings
-
-            passkey_signup_enabled = mfa_settings.PASSKEY_SIGNUP_ENABLED
+        ret.update(get_entrance_context_data(self.request))
         form = ret["form"]
         email = self.request.session.get("account_verified_email")
         if email:
@@ -199,25 +166,6 @@
                 email_keys.append("email2")
             for email_key in email_keys:
                 form.fields[email_key].initial = email
-        login_url = self.passthrough_next_url(reverse("account_login"))
-        signup_url = self.passthrough_next_url(reverse("account_signup"))
-        signup_by_passkey_url = None
-        if passkey_signup_enabled:
-            signup_by_passkey_url = self.passthrough_next_url(
-                reverse("account_signup_by_passkey")
-            )
-        site = get_current_site(self.request)
-        ret.update(
-            {
-                "login_url": login_url,
-                "signup_url": signup_url,
-                "signup_by_passkey_url": signup_by_passkey_url,
-                "site": site,
-                "SOCIALACCOUNT_ENABLED": 
allauth_app_settings.SOCIALACCOUNT_ENABLED,
-                "SOCIALACCOUNT_ONLY": allauth_app_settings.SOCIALACCOUNT_ONLY,
-                "PASSKEY_SIGNUP_ENABLED": passkey_signup_enabled,
-            }
-        )
         return ret
 
     def get_initial(self) -> dict:
@@ -325,10 +273,9 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ctx = super().get_context_data(**kwargs)
-        site = get_current_site(self.request)
+        ctx.update(get_entrance_context_data(self.request))
         ctx.update(
             {
-                "site": site,
                 "confirmation": self.object,
                 "can_confirm": self.object
                 and self.object.email_address.can_set_verified(),
@@ -604,11 +551,10 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
-        login_url = self.passthrough_next_url(reverse("account_login"))
+        ret.update(get_entrance_context_data(self.request))
         # NOTE: For backwards compatibility
         ret["password_reset_form"] = ret.get("form")
         # (end NOTE)
-        ret.update({"login_url": login_url})
         return ret
 
 
@@ -619,6 +565,11 @@
 class PasswordResetDoneView(TemplateView):
     template_name = 
f"account/password_reset_done.{app_settings.TEMPLATE_EXTENSION}"
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 password_reset_done = PasswordResetDoneView.as_view()
 
@@ -687,6 +638,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret["action_url"] = reverse(
             "account_reset_password_from_key",
             kwargs={
@@ -721,6 +673,11 @@
         
f"account/password_reset_from_key_done.{app_settings.TEMPLATE_EXTENSION}"
     )
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 password_reset_from_key_done = PasswordResetFromKeyDoneView.as_view()
 
@@ -756,6 +713,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret["action_url"] = reverse("account_complete_password_reset")
         return ret
 
@@ -806,6 +764,7 @@
 
     def get_context_data(self, **kwargs):
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret["email"] = self._process.state["email"]
         ret["verify_form"] = ret["form"]
         return ret
@@ -864,6 +823,11 @@
 class AccountInactiveView(TemplateView):
     template_name = 
f"account/account_inactive.{app_settings.TEMPLATE_EXTENSION}"
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 account_inactive = AccountInactiveView.as_view()
 
@@ -872,6 +836,11 @@
 class EmailVerificationSentView(TemplateView):
     template_name = 
f"account/verification_sent.{app_settings.TEMPLATE_EXTENSION}"
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 class ConfirmEmailVerificationCodeView(NextRedirectMixin, FormView):
     template_name = (
@@ -942,6 +911,7 @@
 
     def get_context_data(self, **kwargs):
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret["can_change"] = self._process.can_change
         ret["can_resend"] = self._process.can_resend
         ret["email"] = self._process.state["email"]
@@ -1130,8 +1100,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
-        site = get_current_site(self.request)
-        ret.update({"site": site})
+        ret.update(get_entrance_context_data(self.request))
         return ret
 
 
@@ -1234,13 +1203,12 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
-        site = get_current_site(self.request)
+        ret.update(get_entrance_context_data(self.request))
         email = self._process.state.get("email")
         phone = self._process.state.get("phone")
         ret.update(
             {
                 "can_resend": self._process.can_resend,
-                "site": site,
                 "email": email,
                 "phone": phone,
                 "verify_form": ret["form"],
@@ -1344,9 +1312,9 @@
 
     def get_context_data(self, **kwargs):
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret["can_change"] = self.process.can_change
         ret["can_resend"] = self.process.can_resend
-        site = get_current_site(self.request)
         if self._action == "change":
             ret["change_form"] = ret["form"]
             ret["verify_form"] = self._get_verify_form_class()()
@@ -1355,7 +1323,6 @@
             ret["verify_form"] = ret["form"]
         ret.update(
             {
-                "site": site,
                 "phone": self.process.phone,
                 "action": self._action,
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/allauth/mfa/base/views.py 
new/django_allauth-65.15.1/allauth/mfa/base/views.py
--- old/django_allauth-65.15.0/allauth/mfa/base/views.py        2026-03-05 
20:28:53.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/mfa/base/views.py        2026-04-01 
23:51:16.000000000 +0200
@@ -9,6 +9,7 @@
 
 from allauth.account import app_settings as account_settings
 from allauth.account.internal.decorators import login_stage_required
+from allauth.account.internal.templatekit import get_entrance_context_data
 from allauth.account.views import BaseReauthenticateView
 from allauth.mfa import app_settings
 from allauth.mfa.base.forms import AuthenticateForm, ReauthenticateForm
@@ -93,6 +94,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data()
+        ret.update(get_entrance_context_data(self.request))
         ret.update(
             {
                 "form": self.auth_form,
@@ -174,6 +176,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         now = timezone.now()
         ret["trust_from"] = now
         ret["trust_until"] = now + app_settings.TRUST_COOKIE_AGE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/allauth/mfa/webauthn/views.py 
new/django_allauth-65.15.1/allauth/mfa/webauthn/views.py
--- old/django_allauth-65.15.0/allauth/mfa/webauthn/views.py    2026-03-06 
12:28:53.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/mfa/webauthn/views.py    2026-04-01 
23:54:16.000000000 +0200
@@ -10,6 +10,7 @@
 from allauth.account.adapter import get_adapter as get_account_adapter
 from allauth.account.decorators import reauthentication_required
 from allauth.account.internal.decorators import login_stage_required
+from allauth.account.internal.templatekit import get_entrance_context_data
 from allauth.account.mixins import NextRedirectMixin, 
RedirectAuthenticatedUserMixin
 from allauth.account.models import Login
 from allauth.account.views import BaseReauthenticateView
@@ -131,6 +132,11 @@
         login = Login(user=authenticator.user, redirect_url=redirect_url)
         return flows.perform_passwordless_login(self.request, authenticator, 
login)
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 login_webauthn = LoginWebAuthnView.as_view()
 
@@ -206,6 +212,7 @@
 
     def get_context_data(self, **kwargs) -> dict:
         ret = super().get_context_data()
+        ret.update(get_entrance_context_data(self.request))
         stage = self._login_stage
         creation_options = auth.begin_registration(stage.login.user, True)
         ret["js_data"] = {"creation_options": creation_options}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/allauth/socialaccount/adapter.py 
new/django_allauth-65.15.1/allauth/socialaccount/adapter.py
--- old/django_allauth-65.15.0/allauth/socialaccount/adapter.py 2026-03-06 
09:11:23.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/socialaccount/adapter.py 2026-04-01 
22:00:45.000000000 +0200
@@ -342,10 +342,10 @@
 
     def can_authenticate_by_email(self, login, email):
         """
-        Returns ``True`` iff  authentication by email is active for this 
login/email.
+        Returns ``True`` if  authentication by email is active for this 
login/email.
 
         This can be configured with a ``"email_authentication"`` key in the 
provider
-        app settings, or a ``"VERIFIED_EMAIL"`` in the global provider settings
+        app settings, or a ``"EMAIL_AUTHENTICATION"`` in the global provider 
settings
         (``SOCIALACCOUNT_PROVIDERS``).
         """
         ret = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/allauth/socialaccount/providers/oauth/client.py 
new/django_allauth-65.15.1/allauth/socialaccount/providers/oauth/client.py
--- old/django_allauth-65.15.0/allauth/socialaccount/providers/oauth/client.py  
2026-03-05 18:36:47.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/socialaccount/providers/oauth/client.py  
2026-03-13 10:38:19.000000000 +0100
@@ -208,7 +208,11 @@
         )
         with get_adapter().get_requests_session() as sess:
             response = sess.request(
-                url, method=method.lower(), auth=oauth, headers=headers, 
params=params
+                method=method.lower(),
+                url=url,
+                auth=oauth,
+                headers=headers,
+                params=params,
             )
             if response.status_code != HTTPStatus.OK:
                 raise OAuthError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/allauth/socialaccount/views.py 
new/django_allauth-65.15.1/allauth/socialaccount/views.py
--- old/django_allauth-65.15.0/allauth/socialaccount/views.py   2026-03-05 
20:19:14.000000000 +0100
+++ new/django_allauth-65.15.1/allauth/socialaccount/views.py   2026-04-01 
23:56:16.000000000 +0200
@@ -1,7 +1,6 @@
 from http import HTTPStatus
 
 from django.contrib.auth.decorators import login_required
-from django.contrib.sites.shortcuts import get_current_site
 from django.http import HttpResponse, HttpResponseRedirect
 from django.urls import reverse, reverse_lazy
 from django.utils.decorators import method_decorator
@@ -9,6 +8,7 @@
 from django.views.generic.edit import FormView
 
 from allauth.account.internal.decorators import login_not_required
+from allauth.account.internal.templatekit import get_entrance_context_data
 from allauth.socialaccount.forms import DisconnectForm, SignupForm
 from allauth.socialaccount.internal import flows
 from allauth.socialaccount.models import SocialAccount
@@ -58,9 +58,9 @@
 
     def get_context_data(self, **kwargs):
         ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
         ret.update(
             dict(
-                site=get_current_site(self.request),
                 account=self.sociallogin.account,
             )
         )
@@ -79,6 +79,11 @@
         f"socialaccount/login_cancelled.{account_settings.TEMPLATE_EXTENSION}"
     )
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 login_cancelled = LoginCancelledView.as_view()
 
@@ -94,6 +99,11 @@
             status=HTTPStatus.UNAUTHORIZED,
         )
 
+    def get_context_data(self, **kwargs) -> dict:
+        ret = super().get_context_data(**kwargs)
+        ret.update(get_entrance_context_data(self.request))
+        return ret
+
 
 login_error = LoginErrorView.as_view()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/allauth/templates/account/request_login_code.html 
new/django_allauth-65.15.1/allauth/templates/account/request_login_code.html
--- 
old/django_allauth-65.15.0/allauth/templates/account/request_login_code.html    
    2025-11-18 23:00:57.000000000 +0100
+++ 
new/django_allauth-65.15.1/allauth/templates/account/request_login_code.html    
    2026-04-02 10:26:25.000000000 +0200
@@ -11,8 +11,7 @@
     {% element p %}
         {% blocktranslate %}You will receive a special code for a 
password-free sign-in.{% endblocktranslate %}
     {% endelement %}
-    {% url 'account_request_login_code' as login_url %}
-    {% element form form=form method="post" action=login_url 
tags="entrance,login" %}
+    {% element form form=form method="post" action=request_login_code_url 
tags="entrance,login" %}
         {% slot body %}
             {% csrf_token %}
             {% element fields form=form unlabeled=True %}
@@ -25,7 +24,6 @@
             {% endelement %}
         {% endslot %}
     {% endelement %}
-    {% url 'account_login' as login_url %}
     {% element button href=login_url tags="link" %}
         {% translate "Other sign-in options" %}
     {% endelement %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/django_allauth.egg-info/PKG-INFO 
new/django_allauth-65.15.1/django_allauth.egg-info/PKG-INFO
--- old/django_allauth-65.15.0/django_allauth.egg-info/PKG-INFO 2026-03-09 
14:43:54.000000000 +0100
+++ new/django_allauth-65.15.1/django_allauth.egg-info/PKG-INFO 2026-04-02 
11:16:31.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: django-allauth
-Version: 65.15.0
+Version: 65.15.1
 Summary: Integrated set of Django applications addressing authentication, 
registration, account management as well as 3rd party (social) account 
authentication.
 Author-email: Raymond Penners <[email protected]>
 License: MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/django_allauth.egg-info/SOURCES.txt 
new/django_allauth-65.15.1/django_allauth.egg-info/SOURCES.txt
--- old/django_allauth-65.15.0/django_allauth.egg-info/SOURCES.txt      
2026-03-09 14:43:54.000000000 +0100
+++ new/django_allauth-65.15.1/django_allauth.egg-info/SOURCES.txt      
2026-04-02 11:16:32.000000000 +0200
@@ -66,6 +66,7 @@
 allauth/account/internal/decorators.py
 allauth/account/internal/emailkit.py
 allauth/account/internal/stagekit.py
+allauth/account/internal/templatekit.py
 allauth/account/internal/userkit.py
 allauth/account/internal/flows/__init__.py
 allauth/account/internal/flows/code_verification.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django_allauth-65.15.0/docs/conf.py 
new/django_allauth-65.15.1/docs/conf.py
--- old/django_allauth-65.15.0/docs/conf.py     2026-03-05 15:40:49.000000000 
+0100
+++ new/django_allauth-65.15.1/docs/conf.py     2026-03-13 10:37:11.000000000 
+0100
@@ -53,9 +53,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = "65.15.0"
+version = "65.15.1"
 # The full version, including alpha/beta/rc tags.
-release = "65.15.0"
+release = "65.15.1"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/examples/react-spa/backend/requirements.txt 
new/django_allauth-65.15.1/examples/react-spa/backend/requirements.txt
--- old/django_allauth-65.15.0/examples/react-spa/backend/requirements.txt      
2026-03-09 14:29:57.000000000 +0100
+++ new/django_allauth-65.15.1/examples/react-spa/backend/requirements.txt      
2026-04-02 11:13:16.000000000 +0200
@@ -1,4 +1,4 @@
-django-allauth[mfa,socialaccount]>=65.15.0
+django-allauth[mfa,socialaccount]>=65.15.1
 qrcode >= 7.0.0
 drf-spectacular == 0.28.0
 djangorestframework >= 3.15.2,<4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/examples/regular-django/requirements.txt 
new/django_allauth-65.15.1/examples/regular-django/requirements.txt
--- old/django_allauth-65.15.0/examples/regular-django/requirements.txt 
2026-03-09 14:29:57.000000000 +0100
+++ new/django_allauth-65.15.1/examples/regular-django/requirements.txt 
2026-04-02 11:13:16.000000000 +0200
@@ -1 +1 @@
-django-allauth[mfa,saml,socialaccount,steam]>=65.15.0
+django-allauth[mfa,saml,socialaccount,steam]>=65.15.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/tests/apps/mfa/webauthn/test_views.py 
new/django_allauth-65.15.1/tests/apps/mfa/webauthn/test_views.py
--- old/django_allauth-65.15.0/tests/apps/mfa/webauthn/test_views.py    
2026-01-17 13:07:19.000000000 +0100
+++ new/django_allauth-65.15.1/tests/apps/mfa/webauthn/test_views.py    
2026-04-01 22:44:05.000000000 +0200
@@ -193,6 +193,14 @@
     assert resp["location"] == settings.LOGIN_REDIRECT_URL
 
 
+def test_login_webauthn_when_already_authenticated(auth_client, passkey):
+    """Visiting the WebAuthn login page as a logged-in user should redirect,
+    not crash."""
+    resp = auth_client.get(reverse("mfa_login_webauthn"))
+    assert resp.status_code == HTTPStatus.FOUND
+    assert resp["location"] == settings.LOGIN_REDIRECT_URL
+
+
 def test_webauthn_login(
     client, user_with_passkey, passkey, user_password, 
webauthn_authentication_bypass
 ):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django_allauth-65.15.0/tests/apps/socialaccount/test_login.py 
new/django_allauth-65.15.1/tests/apps/socialaccount/test_login.py
--- old/django_allauth-65.15.0/tests/apps/socialaccount/test_login.py   
2026-01-17 13:07:19.000000000 +0100
+++ new/django_allauth-65.15.1/tests/apps/socialaccount/test_login.py   
2026-04-01 23:58:25.000000000 +0200
@@ -97,7 +97,7 @@
         assert not updated_signal.called
 
 
-def test_login_cancelled(client):
+def test_login_cancelled(client, db):
     resp = client.get(reverse("socialaccount_login_cancelled"))
     assert resp.status_code == HTTPStatus.OK
     assertTemplateUsed(resp, "socialaccount/login_cancelled.html")

Reply via email to