Projet

Général

Profil

0007-views-use-CBV-for-the-login-view-37760.patch

Benjamin Dauvergne, 25 novembre 2019 11:57

Télécharger (1,81 ko)

Voir les différences:

Subject: [PATCH 7/8] views: use CBV for the login view (#37760)

 passerelle/views.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
passerelle/views.py
40 40
from django.utils.encoding import force_text
41 41
from django.forms.models import modelform_factory
42 42
from django.forms.widgets import ClearableFileInput
43
from django.utils.six.moves.urllib.parse import quote
43 44

  
44 45
from dateutil import parser as date_parser
45 46
from jsonschema import validate, ValidationError
......
61 62
    return [x for x in apps.get_models() if issubclass(x, BaseResource) and x.is_enabled()]
62 63

  
63 64

  
64
def login(request, *args, **kwargs):
65
    if any(get_idps()):
66
        if 'next' not in request.GET:
67
            return HttpResponseRedirect(resolve_url('mellon_login'))
68
        return HttpResponseRedirect(resolve_url('mellon_login') + '?next=' + request.GET.get('next'))
69
    return auth_views.login(request, *args, **kwargs)
65
class LoginView(auth_views.LoginView):
66
    def dispatch(self, request, *args, **kwargs):
67
        if any(get_idps()):
68
            if 'next' not in request.GET:
69
                return HttpResponseRedirect(resolve_url('mellon_login'))
70
            return HttpResponseRedirect(resolve_url('mellon_login') + '?next='
71
                                        + quote(request.GET.get('next')))
72
        return super(LoginView, self).dispatch(request, *args, **kwargs)
73

  
74
login = LoginView.as_view()
70 75

  
71 76

  
72 77
def logout(request, next_page=None):
73
-