<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/django/contrib/auth/views.py, branch fix-31295</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=fix-31295</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=fix-31295'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2025-11-12T22:42:24Z</updated>
<entry>
<title>Fixed #36717 -- Redirect authenticated users on admin login view to next URL.</title>
<updated>2025-11-12T22:42:24Z</updated>
<author>
<name>Benedict Etzel</name>
<email>developer@beheh.de</email>
</author>
<published>2025-11-10T12:29:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=5401b125abca53200eacb62c8a10e602359b76d4'/>
<id>urn:sha1:5401b125abca53200eacb62c8a10e602359b76d4</id>
<content type='text'>
Co-authored-by: Natalia &lt;124304+nessita@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Standardized how method_decorator is used in contrib.auth views and admin.</title>
<updated>2025-07-22T19:29:14Z</updated>
<author>
<name>Claude Paroz</name>
<email>claude@2xlibre.net</email>
</author>
<published>2024-08-10T14:57:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=77d455ae73b177a32102f0b248828b5d63c0aa24'/>
<id>urn:sha1:77d455ae73b177a32102f0b248828b5d63c0aa24</id>
<content type='text'>
Updated django.contrib.auth's views and admin modules to apply
decorators consistently.
</content>
</entry>
<entry>
<title>Fixed #36087 -- Supported password reset on a custom user model with a composite primary key.</title>
<updated>2025-01-13T14:51:21Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2025-01-13T11:01:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=23c6effac0c39669e17904165c9762f24b010cc5'/>
<id>urn:sha1:23c6effac0c39669e17904165c9762f24b010cc5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed 35467 -- Replaced urlparse with urlsplit where appropriate.</title>
<updated>2024-05-29T13:48:27Z</updated>
<author>
<name>Jake Howard</name>
<email>RealOrangeOne@users.noreply.github.com</email>
</author>
<published>2024-05-29T13:48:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=ff308a06047cd60806d604a7cf612e5656ee2ac9'/>
<id>urn:sha1:ff308a06047cd60806d604a7cf612e5656ee2ac9</id>
<content type='text'>
This work should not generate any change of functionality, and
`urlsplit` is approximately 6x faster.

Most use cases of `urlparse` didn't touch the path, so they can be
converted to `urlsplit` without any issue. Most of those which do use
`.path`, simply parse the URL, mutate the querystring, then put them
back together, which is also fine (so long as urlunsplit is used).</content>
</entry>
<entry>
<title>Fixed #31405 -- Added LoginRequiredMiddleware.</title>
<updated>2024-05-22T06:51:17Z</updated>
<author>
<name>Hisham Mahmood</name>
<email>hishammahmood41@gmail.com</email>
</author>
<published>2024-05-05T06:21:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=c7fc9f20b49b5889a9a8f47de45165ac443c1a21'/>
<id>urn:sha1:c7fc9f20b49b5889a9a8f47de45165ac443c1a21</id>
<content type='text'>
Co-authored-by: Adam Johnson &lt;me@adamj.eu&gt;
Co-authored-by: Mehmet İnce &lt;mehmet@mehmetince.net&gt;
Co-authored-by: Sarah Boyce &lt;42296566+sarahboyce@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Refs #15619 -- Removed support for logging out via GET requests.</title>
<updated>2023-01-17T10:49:15Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2023-01-13T05:03:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9a01311d204ebf23e615a0802cedcc7b6b373826'/>
<id>urn:sha1:9a01311d204ebf23e615a0802cedcc7b6b373826</id>
<content type='text'>
Per deprecation timeline.
</content>
</entry>
<entry>
<title>Refactored out RedirectURLMixin.get_success_url().</title>
<updated>2022-04-20T08:04:29Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2022-04-16T18:27:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=5dfa6fca967cd1ba5a0d40013a298b7e52b0822b'/>
<id>urn:sha1:5dfa6fca967cd1ba5a0d40013a298b7e52b0822b</id>
<content type='text'>
This also adds a default implementation of get_default_redirect_url().
</content>
</entry>
<entry>
<title>Simplified LogoutView.get_success_url().</title>
<updated>2022-04-20T08:04:29Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2022-04-16T18:21:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=04bc2564b6e0a1a0f75bb5f015e47c96c86fa0be'/>
<id>urn:sha1:04bc2564b6e0a1a0f75bb5f015e47c96c86fa0be</id>
<content type='text'>
This preserves the behavior of redirecting to the logout URL without
query string parameters when an insecure ?next=... parameter is given.

It changes the behavior of a POST to the logout URL, as shown by the
test that is changed. Currently, this results in a GET to the logout
URL. However, such GET requests are deprecated. This change would be
necessary in Django 5.0 anyway. This commit merely anticipates it.
</content>
</entry>
<entry>
<title>Unified LoginView/LogoutView.get_default_redirect_url() methods.</title>
<updated>2022-04-20T08:04:29Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2022-04-16T17:36:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=5fcd9b8c3383e2ab20c1573b44131105654b99d0'/>
<id>urn:sha1:5fcd9b8c3383e2ab20c1573b44131105654b99d0</id>
<content type='text'>
This might change the behavior when self.next_page == "". However,
resolve_url(self.next_page) would almost certainly fail in that case.

It is technically possible to define a logout URLpattern whose name is
"": path('logout/', LogoutView.as_view(), name=''), and then to refer to
this pattern with next_page = "". However this feels like a pathological
case, so we decided not to handle it.

Most checks on next_page, LOGIN_REDIRECT_URL, and LOGOUT_REDIRECT_URL
are performed with boolean evaluation rather than comparison with None.
That's why we standardizing that way.
</content>
</entry>
<entry>
<title>Renamed LogoutView.get_next_page() to get_success_url().</title>
<updated>2022-04-20T08:04:29Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2022-04-16T16:53:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=5b8699e723d9daf373fff46c6859fed2b780a9bd'/>
<id>urn:sha1:5b8699e723d9daf373fff46c6859fed2b780a9bd</id>
<content type='text'>
This aligns it with LoginView. Also, it removes confusion with the
get_next_page() method of paginators. get_next_page() was a private
API, therefore this refactoring is allowed.
</content>
</entry>
</feed>
