misc: use new login class based view (#41286)

This commit is contained in:
Frédéric Péters 2020-04-02 21:50:13 +02:00
parent 72f29fcd68
commit bf1864f324
1 changed files with 17 additions and 7 deletions

View File

@ -47,13 +47,23 @@ from .contacts.views import HomeZone as ContactsHomeZone
from .forms import QualificationForm from .forms import QualificationForm
def login(request, *args, **kwargs): class LoginView(auth_views.LoginView):
if any(get_idps()): template_name = 'welco/login.html'
if not 'next' in request.GET:
return HttpResponseRedirect(resolve_url('mellon_login')) def dispatch(self, request, *args, **kwargs):
return HttpResponseRedirect(resolve_url('mellon_login') + '?next=' if any(get_idps()):
+ quote(request.GET.get('next'))) if 'next' not in request.GET:
return auth_views.login(request, template_name='welco/login.html') return HttpResponseRedirect(resolve_url('mellon_login'))
try:
quoted_next_url = quote(request.GET.get('next'))
except KeyError:
return HttpResponseBadRequest('invalid value for "next" parameter')
return HttpResponseRedirect(resolve_url('mellon_login') + '?next=' + quoted_next_url)
return super(LoginView, self).dispatch(request, *args, **kwargs)
login = LoginView.as_view()
def logout(request, next_page=None): def logout(request, next_page=None):
if any(get_idps()): if any(get_idps()):