From 335368410210ce0e27e0068b3a2a6cdf4baa956b Mon Sep 17 00:00:00 2001 From: Jan Pazdziora Date: Fri, 26 Jun 2015 21:56:51 +0200 Subject: [PATCH] Fixed #25032 -- Removed double redirect in admin login. --- django/contrib/admin/sites.py | 2 +- tests/admin_views/tests.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 37cb5f2f7e..cccba52023 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -394,7 +394,7 @@ class AdminSite(object): ) if (REDIRECT_FIELD_NAME not in request.GET and REDIRECT_FIELD_NAME not in request.POST): - context[REDIRECT_FIELD_NAME] = request.get_full_path() + context[REDIRECT_FIELD_NAME] = reverse('admin:index', current_app=self.name) context.update(extra_context or {}) defaults = { diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 43dd92e7f9..fedae380b4 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -1421,7 +1421,7 @@ class AdminViewPermissionsTest(TestCase): login_url = '%s?next=%s' % (reverse('admin:login'), reverse('admin:index')) # Super User response = self.client.get(self.index_url) - self.assertEqual(response.status_code, 302) + self.assertRedirects(response, login_url) login = self.client.post(login_url, self.super_login) self.assertRedirects(login, self.index_url) self.assertFalse(login.context) @@ -1480,6 +1480,15 @@ class AdminViewPermissionsTest(TestCase): form = login.context[0].get('form') self.assertEqual(form.errors['username'][0], 'This field is required.') + def test_login_redirect_for_direct_get(self): + """ + Login redirect should be to the admin index page when going directly to + /admin/login/. + """ + response = self.client.get(reverse('admin:login')) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.context[REDIRECT_FIELD_NAME], reverse('admin:index')) + def test_login_has_permission(self): # Regular User should not be able to login. response = self.client.get(reverse('has_permission_admin:index'))