add option to roll back reg on error

This commit is contained in:
Daniel Radetsky 2018-03-04 10:07:12 -08:00
parent a3057b7aa1
commit a6834e6718
2 changed files with 14 additions and 1 deletions

View File

@ -17,3 +17,7 @@ def register_permission_classes():
for klass in getattr(settings, 'REST_AUTH_REGISTER_PERMISSION_CLASSES', tuple()):
permission_classes.append(import_callable(klass))
return tuple(permission_classes)
roll_back_register_on_error = getattr(settings,
'REST_AUTH_ROLL_BACK_REGISTER_ON_ERROR',
False)

View File

@ -1,4 +1,5 @@
from django.conf import settings
from django.db import transaction
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext_lazy as _
from django.views.decorators.debug import sensitive_post_parameters
@ -29,7 +30,9 @@ from rest_auth.registration.serializers import (VerifyEmailSerializer,
SocialConnectSerializer)
from rest_auth.utils import jwt_encode
from rest_auth.views import LoginView
from .app_settings import RegisterSerializer, register_permission_classes
from .app_settings import (RegisterSerializer,
register_permission_classes,
roll_back_register_on_error)
sensitive_post_parameters_m = method_decorator(
sensitive_post_parameters('password1', 'password2')
@ -82,6 +85,12 @@ class RegisterView(CreateAPIView):
return user
if roll_back_register_on_error:
RegisterView.perform_create = transaction.atomic(
RegisterView.perform_create
)
class VerifyEmailView(APIView, ConfirmEmailView):
permission_classes = (AllowAny,)
allowed_methods = ('POST', 'OPTIONS', 'HEAD')