2525from rest_framework .viewsets import ModelViewSet
2626
2727from api import serializers
28+ from api .forms import AuthenticationForm
2829from api .exceptions import ServiceUnavailable , DryccException
2930from api .serializers import RegistrationForm
30- from api .utils import token_generator , get_local_host
31+ from api .utils import token_generator , get_local_host , send_activation_email
3132from api .viewset import NormalUserViewSet
3233
3334User = get_user_model ()
@@ -81,19 +82,9 @@ def post(self, request, *args, **kwargs):
8182 self .object = None
8283 if form .is_valid ():
8384 user = form .save (commit = False )
84- user .is_staff = False
8585 user .is_active = False
8686 user .save ()
87- domain = get_local_host (request )
88- mail_subject = 'Activate your account.'
89- message = render_to_string (
90- 'user/account_activation_email.html' , {
91- 'user' : user ,
92- 'domain' : domain ,
93- 'uid' : urlsafe_base64_encode (force_bytes (user .pk )),
94- 'token' : token_generator .make_token (user ),
95- })
96- user .email_user (mail_subject , message , fail_silently = True )
87+ send_activation_email (request , user )
9788 messages .success (request , (
9889 'Please Confirm your email to complete registration.' ))
9990 return self .form_valid (form )
@@ -117,7 +108,6 @@ def get(self, request, uidb64, token, *args, **kwargs):
117108 if user is not None and token_generator .check_token (
118109 user , token ):
119110 user .is_active = True
120- user .is_staff = True
121111 user .save ()
122112 login (request , user , backend = 'django.contrib.auth.backends.ModelBackend' )
123113 messages .success (request , 'Your account have been confirmed.' )
@@ -139,6 +129,7 @@ class ActivateAccountFailView(TemplateView):
139129
140130
141131class UserLoginView (views .LoginView ):
132+ form_class = AuthenticationForm
142133 extra_context = {
143134 "registration_enabled" : settings .REGISTRATION_ENABLED ,
144135 "password_reset_enabled" : True if settings .EMAIL_HOST else False ,
0 commit comments