The username passed as ``remote_user`` is considered trusted. Return the ``User`` object with the given username. Create a new ``User`` object if ``create_unknown_user`` is ``True``. Return None if ``create_unknown_user`` is ``False`` and a ``User`` object w
(self, request, remote_user)
| 268 | create_unknown_user = True |
| 269 | |
| 270 | def authenticate(self, request, remote_user): |
| 271 | """ |
| 272 | The username passed as ``remote_user`` is considered trusted. Return |
| 273 | the ``User`` object with the given username. Create a new ``User`` |
| 274 | object if ``create_unknown_user`` is ``True``. |
| 275 | |
| 276 | Return None if ``create_unknown_user`` is ``False`` and a ``User`` |
| 277 | object with the given username is not found in the database. |
| 278 | """ |
| 279 | if not remote_user: |
| 280 | return |
| 281 | created = False |
| 282 | user = None |
| 283 | username = self.clean_username(remote_user) |
| 284 | |
| 285 | # Note that this could be accomplished in one try-except clause, but |
| 286 | # instead we use get_or_create when creating unknown users since it has |
| 287 | # built-in safeguards for multiple threads. |
| 288 | if self.create_unknown_user: |
| 289 | user, created = UserModel._default_manager.get_or_create( |
| 290 | **{UserModel.USERNAME_FIELD: username} |
| 291 | ) |
| 292 | else: |
| 293 | try: |
| 294 | user = UserModel._default_manager.get_by_natural_key(username) |
| 295 | except UserModel.DoesNotExist: |
| 296 | pass |
| 297 | user = self.configure_user(request, user, created=created) |
| 298 | return user if self.user_can_authenticate(user) else None |
| 299 | |
| 300 | async def aauthenticate(self, request, remote_user): |
| 301 | """See authenticate().""" |
nothing calls this directly
no test coverage detected