summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJon Janzen <jon@jonjanzen.com>2023-02-13 18:24:35 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-07 13:11:22 +0100
commite846c5e7246a0ffbe5dcf07a2b6c7c2a47537eb3 (patch)
treed86cad38a58734387b5142b6d5d90d0b90d2f7f2 /docs
parente83a88566a71a2353cebc35992c110be0f8628af (diff)
downloaddjango-e846c5e7246a0ffbe5dcf07a2b6c7c2a47537eb3.tar.gz
Fixed #31920 -- Made AuthenticationMiddleware add request.auser().
Diffstat (limited to 'docs')
-rw-r--r--docs/ref/request-response.txt14
-rw-r--r--docs/releases/5.0.txt3
-rw-r--r--docs/topics/auth/default.txt15
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