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
def login(request, *args, **kwargs):
if any(get_idps()):
if not 'next' in request.GET:
return HttpResponseRedirect(resolve_url('mellon_login'))
return HttpResponseRedirect(resolve_url('mellon_login') + '?next='
+ quote(request.GET.get('next')))
return auth_views.login(request, template_name='welco/login.html')
class LoginView(auth_views.LoginView):
template_name = 'welco/login.html'
def dispatch(self, request, *args, **kwargs):
if any(get_idps()):
if 'next' not in request.GET:
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):
if any(get_idps()):