From a65dd97c61d07fd8d5ba617d64aebfedb4d51a16 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 13 Jan 2015 15:00:20 +0100 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(-) diff --git a/src/authentic2/registration_backend/views.py b/src/authentic2/registration_backend/views.py index 63bb269..1f3cbe3 100644 --- a/src/authentic2/registration_backend/views.py +++ b/src/authentic2/registration_backend/views.py @@ -9,17 +9,17 @@ from django.contrib.auth import authenticate, login as django_login, logout from django.db.models import FieldDoesNotExist from django.db import IntegrityError from django.template.loader import render_to_string from django.core import signing from django.views.generic.edit import FormView from django.views.generic.base import TemplateView, View from authentic2.utils import get_form_class -from .. import models, app_settings, compat +from .. import models, app_settings, compat, cbv logger = logging.getLogger(__name__) User = compat.get_user_model() def valid_token(method): def f(obj, *args, **kwargs): try: @@ -34,17 +34,17 @@ def valid_token(method): return method(obj, *args, **params) return f def login(request, user, redirect_url='auth_homepage'): user.backend = 'authentic2.backends.ModelBackend' django_login(request, user) return redirect(redirect_url) -class RegistrationView(FormView): +class RegistrationView(cbv.ValidateCSRFMixin, FormView): form_class = get_form_class(app_settings.A2_REGISTRATION_FORM_CLASS) template_name = 'registration/registration_form.html' def form_valid(self, form): form.save(self.request) return redirect('registration_complete') class RegistrationCompletionView(FormView): -- 1.9.1