diff --git a/chrono/views.py b/chrono/views.py index 0982e51c..eeb76736 100644 --- a/chrono/views.py +++ b/chrono/views.py @@ -27,13 +27,19 @@ else: get_idps = lambda: [] -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, *args, **kwargs) +class LoginView(auth_views.LoginView): + def dispatch(self, request, *args, **kwargs): + if any(get_idps()): + if 'next' not in request.GET: + return HttpResponseRedirect(resolve_url('mellon_login')) + return HttpResponseRedirect(resolve_url('mellon_login') + '?next=' + + quote(request.GET.get('next'))) + return super(LoginView, self).dispatch(request, *args, **kwargs) + pass + + +login = LoginView.as_view() + def logout(request, next_page=None): if any(get_idps()):