summaryrefslogtreecommitdiff
path: root/django/contrib/auth
diff options
context:
space:
mode:
authorJacob Walls <jacobtylerwalls@gmail.com>2026-04-01 09:36:16 -0400
committerJacob Walls <jacobtylerwalls@gmail.com>2026-04-02 09:00:55 -0400
commita32c7075cf634aee1f4f3deecd27f194097ec0c2 (patch)
tree016b465f52f5f9b7cd759c89a59200ad9924265a /django/contrib/auth
parent856c915326768962806705ca7733e4abbb8f794f (diff)
Fixed #37017 -- Fixed setting or clearing of request.user after alogin/alogout().
Regression in 31a43c571f4d036827d4fd7a5f615591637dc1be.
Diffstat (limited to 'django/contrib/auth')
-rw-r--r--django/contrib/auth/__init__.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/django/contrib/auth/__init__.py b/django/contrib/auth/__init__.py
index 2702c38aa4..21e6dc43d6 100644
--- a/django/contrib/auth/__init__.py
+++ b/django/contrib/auth/__init__.py
@@ -205,6 +205,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():
@@ -244,13 +246,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():