diff options
Diffstat (limited to 'django/contrib/auth/middleware.py')
| -rw-r--r-- | django/contrib/auth/middleware.py | 11 |
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): |
