fix: auto-redirect authenticated user when visiting login page
parent
f6c89999e9
commit
96e71d7c32
|
@ -131,6 +131,32 @@ class LoginTest(TestCase):
|
|||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.login"))
|
||||
|
||||
def test_login_view_redirects_if_user_is_loggedin(self):
|
||||
"""
|
||||
Automatically redirect authenticated users that are visiting login view
|
||||
"""
|
||||
c = Client()
|
||||
login_util(t=self, c=c, redirect_to="accounts.home")
|
||||
|
||||
resp = c.get(reverse("accounts.login"))
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.home"))
|
||||
|
||||
resp = c.post(reverse("accounts.login"))
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("accounts.home"))
|
||||
|
||||
resp = c.get(
|
||||
f"{reverse('accounts.login')}?next={reverse('dash.instances.list')}"
|
||||
)
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("dash.instances.list"))
|
||||
|
||||
ctx = {"next": reverse("dash.instances.list")}
|
||||
resp = c.post(reverse("accounts.login"), ctx)
|
||||
self.assertEqual(resp.status_code, 302)
|
||||
self.assertEqual(resp.headers["location"], reverse("dash.instances.list"))
|
||||
|
||||
|
||||
class RegistrationTest(TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
@ -35,6 +35,12 @@ def login_view(request):
|
|||
"title": "Login",
|
||||
}
|
||||
|
||||
if request.user.is_authenticated:
|
||||
data = request.GET if request.method == "GET" else request.POST
|
||||
if "next" in data:
|
||||
return redirect(data["next"])
|
||||
return redirect(reverse("accounts.home"))
|
||||
|
||||
if request.method == "GET":
|
||||
ctx = default_login_ctx()
|
||||
if "next" in request.GET:
|
||||
|
|
Loading…
Reference in New Issue