diff options
author | Jon Janzen <jon@jonjanzen.com> | 2023-02-13 18:24:35 -0500 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-07 13:11:22 +0100 |
commit | e846c5e7246a0ffbe5dcf07a2b6c7c2a47537eb3 (patch) | |
tree | d86cad38a58734387b5142b6d5d90d0b90d2f7f2 /docs | |
parent | e83a88566a71a2353cebc35992c110be0f8628af (diff) | |
download | django-e846c5e7246a0ffbe5dcf07a2b6c7c2a47537eb3.tar.gz |
Fixed #31920 -- Made AuthenticationMiddleware add request.auser().
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ref/request-response.txt | 14 | ||||
-rw-r--r-- | docs/releases/5.0.txt | 3 | ||||
-rw-r--r-- | docs/topics/auth/default.txt | 15 |
3 files changed, 32 insertions, 0 deletions
diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 9b0ed76e4d..9b71adfdf9 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -281,9 +281,23 @@ middleware class is listed in :setting:`MIDDLEWARE`. else: ... # Do something for anonymous users. + The :meth:`auser` method does the same thing but can be used from async + contexts. + Methods ------- +.. method:: HttpRequest.auser() + + .. versionadded:: 5.0 + + From the :class:`~django.contrib.auth.middleware.AuthenticationMiddleware`: + Coroutine. Returns an instance of :setting:`AUTH_USER_MODEL` representing + the currently logged-in user. If the user isn't currently logged in, + ``auser`` will return an instance of + :class:`~django.contrib.auth.models.AnonymousUser`. This is similar to the + :attr:`user` attribute but it works in async contexts. + .. method:: HttpRequest.get_host() Returns the originating host of the request using information from the diff --git a/docs/releases/5.0.txt b/docs/releases/5.0.txt index 83cb6284a5..21ab783f86 100644 --- a/docs/releases/5.0.txt +++ b/docs/releases/5.0.txt @@ -65,6 +65,9 @@ Minor features * The default iteration count for the PBKDF2 password hasher is increased from 600,000 to 720,000. +* ``AuthenticationMiddleware`` now adds an :meth:`.HttpRequest.auser` + asynchronous method that returns the currently logged-in user. + :mod:`django.contrib.contenttypes` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/topics/auth/default.txt b/docs/topics/auth/default.txt index a93201fb09..c705abcb6b 100644 --- a/docs/topics/auth/default.txt +++ b/docs/topics/auth/default.txt @@ -368,6 +368,7 @@ Django uses :doc:`sessions </topics/http/sessions>` and middleware to hook the authentication system into :class:`request objects <django.http.HttpRequest>`. These provide a :attr:`request.user <django.http.HttpRequest.user>` attribute +and a :meth:`request.auser <django.http.HttpRequest.auser>` async method on every request which represents the current user. If the current user has not logged in, this attribute will be set to an instance of :class:`~django.contrib.auth.models.AnonymousUser`, otherwise it will be an @@ -383,6 +384,20 @@ You can tell them apart with # Do something for anonymous users. ... +Or in an asynchronous view:: + + user = await request.auser() + if user.is_authenticated: + # Do something for authenticated users. + ... + else: + # Do something for anonymous users. + ... + +.. versionchanged:: 5.0 + + The :meth:`.HttpRequest.auser` method was added. + .. _how-to-log-a-user-in: How to log a user in |