summaryrefslogtreecommitdiff
path: root/django/contrib/auth/middleware.py
diff options
context:
space:
mode:
authorJon Janzen <jon@jonjanzen.com>2023-02-13 18:24:35 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-07 13:11:22 +0100
commite846c5e7246a0ffbe5dcf07a2b6c7c2a47537eb3 (patch)
treed86cad38a58734387b5142b6d5d90d0b90d2f7f2 /django/contrib/auth/middleware.py
parente83a88566a71a2353cebc35992c110be0f8628af (diff)
Fixed #31920 -- Made AuthenticationMiddleware add request.auser().
Diffstat (limited to 'django/contrib/auth/middleware.py')
-rw-r--r--django/contrib/auth/middleware.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/django/contrib/auth/middleware.py b/django/contrib/auth/middleware.py
index dcc482154c..72dc553827 100644
--- a/django/contrib/auth/middleware.py
+++ b/django/contrib/auth/middleware.py
@@ -1,3 +1,7 @@
+from functools import partial
+
+from asgiref.sync import sync_to_async
+
from django.contrib import auth
from django.contrib.auth import load_backend
from django.contrib.auth.backends import RemoteUserBackend
@@ -12,6 +16,12 @@ def get_user(request):
return request._cached_user
+async def auser(request):
+ if not hasattr(request, "_acached_user"):
+ request._acached_user = await sync_to_async(auth.get_user)(request)
+ return request._acached_user
+
+
class AuthenticationMiddleware(MiddlewareMixin):
def process_request(self, request):
if not hasattr(request, "session"):
@@ -23,6 +33,7 @@ class AuthenticationMiddleware(MiddlewareMixin):
"'django.contrib.auth.middleware.AuthenticationMiddleware'."
)
request.user = SimpleLazyObject(lambda: get_user(request))
+ request.auser = partial(auser, request)
class RemoteUserMiddleware(MiddlewareMixin):