diff options
| author | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-04-01 09:36:16 -0400 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-04-02 09:01:19 -0400 |
| commit | a5c28dc1d7606f11adb932d0bd4dba899a028007 (patch) | |
| tree | 50cdbb8e8c4b0d1eb4f630560216f5ecdc38c6a4 /django | |
| parent | 3436edb6966a83ac6be06dbc422df89fdc9e5653 (diff) | |
[6.0.x] Fixed #37017 -- Fixed setting or clearing of request.user after alogin/alogout().
Regression in 31a43c571f4d036827d4fd7a5f615591637dc1be.
Backport of a32c7075cf634aee1f4f3deecd27f194097ec0c2 from main.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/auth/__init__.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/django/contrib/auth/__init__.py b/django/contrib/auth/__init__.py index 1119ef4f91..db08bdff13 100644 --- a/django/contrib/auth/__init__.py +++ b/django/contrib/auth/__init__.py @@ -234,6 +234,8 @@ async def alogin(request, user, backend=None): await request.session.aset(SESSION_KEY, user._meta.pk.value_to_string(user)) await request.session.aset(BACKEND_SESSION_KEY, backend) await request.session.aset(HASH_SESSION_KEY, session_auth_hash) + if hasattr(request, "user"): + request.user = user if hasattr(request, "auser"): async def auser(): @@ -273,13 +275,21 @@ async def alogout(request): user = None await user_logged_out.asend(sender=user.__class__, request=request, user=user) await request.session.aflush() - if hasattr(request, "auser"): + + has_user = hasattr(request, "user") + has_auser = hasattr(request, "auser") + if has_user or has_auser: from django.contrib.auth.models import AnonymousUser - async def auser(): - return AnonymousUser() + anon = AnonymousUser() + if has_user: + request.user = anon + if has_auser: - request.auser = auser + async def auser(): + return anon + + request.auser = auser def get_user_model(): |
