diff --git a/apps/auth/tests/test_verification_email.py b/apps/auth/tests/test_verification_email.py index 83704a26..772751c3 100644 --- a/apps/auth/tests/test_verification_email.py +++ b/apps/auth/tests/test_verification_email.py @@ -12,7 +12,7 @@ class VerificationEmailTest(TestCase): self.user_1 = LilcityUserProxy.objects.create_user(username='user_1@example.com', password='1234') self.token_user_1 = verification_email_token.make_token(self.user_1) - self.url = reverse('lilcity:verification-email', kwargs={"token": self.token_user_1}) + self.url = reverse('lilcity:verification-email', kwargs={"token": self.token_user_1, "uid": self.user_1.id}) def test_should_verification_email_for_login_user(self): self.client.login(username=self.user_1.username, password='1234') diff --git a/apps/auth/urls.py b/apps/auth/urls.py index 8adfed45..947ed312 100644 --- a/apps/auth/urls.py +++ b/apps/auth/urls.py @@ -6,7 +6,7 @@ urlpatterns = [ path('registration/learner/', views.LearnerRegistrationView.as_view(), name="registration-learner"), path('logout/', views.LogoutView.as_view(), name="logout"), path('login/', views.LoginView.as_view(), name="login"), - path('verification-email//', views.VerificationEmailView.as_view(), name="verification-email"), + path('verification-email///', views.VerificationEmailView.as_view(), name="verification-email"), path('success-verification-email/', views.SuccessVerificationEmailView.as_view(), name="success-verification-email"), path('facebook_login/', views.FacebookLoginOrRegistration.as_view(), name="facebook_login"), diff --git a/apps/auth/views.py b/apps/auth/views.py index 77f3a37f..1473d42b 100644 --- a/apps/auth/views.py +++ b/apps/auth/views.py @@ -57,7 +57,7 @@ class LearnerRegistrationView(FormView): refferer = urlsplit(self.request.META.get('HTTP_REFERER')) refferer = str(refferer[0]) + '://' + str(refferer[1]) token = verification_email_token.make_token(user) - url = refferer + str(reverse_lazy('lilcity:verification-email', args=[token])) + url = refferer + str(reverse_lazy('lilcity:verification-email', args=[token, user.id])) send_email('Вы успешно прошли регистрацию', email, "notification/email/verification_email.html", url=url, config=config) return JsonResponse({"success": True}, status=201) @@ -86,13 +86,14 @@ class LoginView(FormView): class VerificationEmailView(View): def get(self, request, *args, **kwargs): + user = User.objects.get(pk=kwargs.get('uid')) is_valid_token = verification_email_token.check_token( - request.user, kwargs.get('token')) + user, kwargs.get('token')) if is_valid_token: - request.user.is_email_proved = True - request.user.save() - login(request, request.user) + user.is_email_proved = True + user.save() + login(request, user) return redirect(reverse_lazy('lilcity:success-verification-email')) else: return JsonResponse({"success": False}, status=400) diff --git a/apps/user/views.py b/apps/user/views.py index 4f9019e9..70a81586 100644 --- a/apps/user/views.py +++ b/apps/user/views.py @@ -37,7 +37,7 @@ User = get_user_model() @login_required def resend_email_verify(request): token = verification_email_token.make_token(request.user) - url = request.scheme + '://' + request.get_host() + str(reverse_lazy('lilcity:verification-email', args=[token])) + url = request.scheme + '://' + request.get_host() + str(reverse_lazy('lilcity:verification-email', args=[token, request.user.id])) send_email('Вы успешно прошли регистрацию', request.user.email, "notification/email/verification_email.html", url=url) messages.info(request, 'Письмо подтверждения отправлено.') return redirect('user-edit-profile', request.user.id)