@@ -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