Projet

Général

Profil

0003-Use-new-mixin-on-registration-view-to-show-a-form-er.patch

Benjamin Dauvergne, 06 mars 2015 16:25

Télécharger (1,96 ko)

Voir les différences:

Subject: [PATCH 3/5] Use new mixin on registration view to show a form error
 on CSRF token validation error instead of a redirect (refs #5617)

 src/authentic2/registration_backend/views.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
src/authentic2/registration_backend/views.py
9 9
from django.db.models import FieldDoesNotExist
10 10
from django.db import IntegrityError
11 11
from django.template.loader import render_to_string
12 12
from django.core import signing
13 13
from django.views.generic.edit import FormView
14 14
from django.views.generic.base import TemplateView, View
15 15

  
16 16
from authentic2.utils import get_form_class
17
from .. import models, app_settings, compat
17
from .. import models, app_settings, compat, cbv
18 18

  
19 19
logger = logging.getLogger(__name__)
20 20

  
21 21
User = compat.get_user_model()
22 22

  
23 23
def valid_token(method):
24 24
    def f(obj, *args, **kwargs):
25 25
        try:
......
34 34
        return method(obj, *args, **params)
35 35
    return f
36 36

  
37 37
def login(request, user, redirect_url='auth_homepage'):
38 38
    user.backend = 'authentic2.backends.ModelBackend'
39 39
    django_login(request, user)
40 40
    return redirect(redirect_url)
41 41

  
42
class RegistrationView(FormView):
42
class RegistrationView(cbv.ValidateCSRFMixin, FormView):
43 43
    form_class = get_form_class(app_settings.A2_REGISTRATION_FORM_CLASS)
44 44
    template_name = 'registration/registration_form.html'
45 45

  
46 46
    def form_valid(self, form):
47 47
        form.save(self.request)
48 48
        return redirect('registration_complete')
49 49

  
50 50
class RegistrationCompletionView(FormView):
51
-