Просмотр исходного кода

Redirect users away from /login, if they are already logged in

Simeon Keske 5 лет назад
Родитель
Сommit
bfcbd9da6c
1 измененных файлов с 9 добавлено и 0 удалено
  1. 9 0
      netbox/users/views.py

+ 9 - 0
netbox/users/views.py

@@ -36,6 +36,15 @@ class LoginView(View):
         return super().dispatch(*args, **kwargs)
         return super().dispatch(*args, **kwargs)
 
 
     def get(self, request):
     def get(self, request):
+        if request.user.is_authenticated:
+            # Already logged-in, determine where to redirect
+            redirect_to = request.GET.get('next', reverse('home'))
+            if redirect_to and not is_safe_url(url=redirect_to, allowed_hosts=request.get_host()):
+                logger.warning(f"Ignoring unsafe 'next' URL passed to login form: {redirect_to}")
+                redirect_to = reverse('home')
+
+            return HttpResponseRedirect(redirect_to)
+
         form = LoginForm(request)
         form = LoginForm(request)
 
 
         return render(request, self.template_name, {
         return render(request, self.template_name, {