Skip to content

Commit 5dfb658

Browse files
sarahboyceArfey
authored andcommitted
Refs #35303 -- Improved use of async methods in RemoteUserMiddleware.
Co-authored-by: Arfey <Arfey17.mg@gmail.com>
1 parent ac01006 commit 5dfb658

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

django/contrib/auth/middleware.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ async def __acall__(self, request):
173173
return await self.get_response(request)
174174

175175
async def aprocess_request(self, request):
176-
# AuthenticationMiddleware is required so that request.user exists.
177-
if not hasattr(request, "user"):
176+
# AuthenticationMiddleware is required so that request.auser exists.
177+
if not hasattr(request, "auser"):
178178
raise ImproperlyConfigured(
179179
"The Django remote user auth middleware requires the"
180180
" authentication middleware to be installed. Edit your"
@@ -198,7 +198,7 @@ async def aprocess_request(self, request):
198198
# getting passed in the headers, then the correct user is already
199199
# persisted in the session and we don't need to continue.
200200
if user.is_authenticated:
201-
if user.get_username() == self.clean_username(username, request):
201+
if user.get_username() == await self.aclean_username(username, request):
202202
return
203203
else:
204204
# An authenticated user is associated with the request, but
@@ -226,6 +226,16 @@ def clean_username(self, username, request):
226226
pass
227227
return username
228228

229+
async def aclean_username(self, username, request):
230+
"""See clean_username."""
231+
backend_str = await request.session.aget(auth.BACKEND_SESSION_KEY)
232+
backend = auth.load_backend(backend_str)
233+
try:
234+
username = backend.clean_username(username)
235+
except AttributeError: # Backend has no clean_username method.
236+
pass
237+
return username
238+
229239
def _remove_invalid_user(self, request):
230240
"""
231241
Remove the current authenticated user in the request which is invalid

0 commit comments

Comments
 (0)