perf: update login success redirect

This commit is contained in:
ibuler 2024-12-19 11:38:54 +08:00 committed by feng626
parent f6f897317e
commit fab156dc5f
2 changed files with 11 additions and 3 deletions

View File

@ -227,6 +227,10 @@ class UserLoginView(mixins.AuthMixin, UserLoginContextMixin, FormView):
return redirect_url return redirect_url
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
next_page = request.GET.get(self.redirect_field_name)
if next_page:
request.session[self.redirect_field_name] = next_page
if request.user.is_staff: if request.user.is_staff:
first_login_url = redirect_user_first_login_or_index( first_login_url = redirect_user_first_login_or_index(
request, self.redirect_field_name request, self.redirect_field_name

View File

@ -68,9 +68,13 @@ def get_redirect_client_url(request):
def redirect_user_first_login_or_index(request, redirect_field_name): def redirect_user_first_login_or_index(request, redirect_field_name):
url = request.POST.get(redirect_field_name) sources = [request.session, request.POST, request.GET]
if not url:
url = request.GET.get(redirect_field_name) url = ''
for source in sources:
url = source.get(redirect_field_name)
if url:
break
if url == 'client': if url == 'client':
url = get_redirect_client_url(request) url = get_redirect_client_url(request)