def get(self, *args, **kwargs): user = get_user_model().objects.filter( email__iexact=kwargs['email']).get() try: ''' filtering email from UserSecurityToken ''' user_token = UserSecurityToken.objects.filter( extras=kwargs['email'], token_type=UserSecurityToken.ACCOUNT_ACTIVATION_TOKEN).last() ''' user token validate''' if user_token: user_token.expire_date = timezone.now() user_token.save() token = UserSecurityToken.create_activation_token( kwargs['email'], user) token.send_verify_token_email(self.request) '''only for ajax request''' if self.request.is_ajax(): data = { 'success': False, 'message': messages.VERIFICATION_EMAIL_SENT } data['success'] = True except UserSecurityToken.DoesNotExist: data = {} data['success'] = False data['message'] = messages.USER_DOESNOT_EXIST if self.request.is_ajax(): return JsonResponse(data) else: return HttpResponseRedirect( reverse_lazy('accounts:email_verification_confirmation'))
def create_account_activation_token(self, data): expiry_date = timezone.now() + timezone.timedelta( minutes=settings.VALIDATE_OTP_EXPIRE) user = get_user_model().objects.filter(email=data['email']).first() verify_token = UserSecurityToken.create_otp( expiry_date, UserSecurityToken.OTP_REGISTER_VERIFY_TOKEN, user, extras=data['email']) return verify_token.token
def create(self, validated_data): email = validated_data['email'] user = get_user_model().objects.get(email__iexact=email) expiry_date = timezone.now() + timezone.timedelta(minutes=settings.FORGOT_PASSWORD_EXPIRE) instance = UserSecurityToken.create_otp(expiry_date, 3, user, extras=email) user_security_objects = UserSecurityToken.objects.filter(user_id=user.id, token_type=3).order_by('-id')[1:] UserSecurityToken.objects.filter(id__in=user_security_objects).update(expire_date=timezone.now()) instance.send_forgot_password_email(self.request) self.otp_sent = True return instance
def save(self, commit=True): # Save the provided password in hashed format user = super(SignupForm, self).save(commit=False) user.set_password(self.cleaned_data["password"]) self.request.session['user_email'] = user.email if commit: user.save() self._token = UserSecurityToken.create_activation_token( user.email, user) self._token.send_verify_token_email(self.request) user.set_password(self.cleaned_data['password']) user.save() return user