From ecfafc05c0c881cfe1f6537df80eb768d34d2720 Mon Sep 17 00:00:00 2001 From: Umair Khan Date: Mon, 28 Aug 2017 11:13:15 +0500 Subject: [PATCH] registration: Use already_registered to show error. Use this new variable to determine if the user already exists while doing registration. While doing login through GitHub if we press *Go back to login*, we pass email using email variable. As a result, the login page starts showing the "User already exists error" if we don't change the variable. --- templates/zerver/login.html | 2 +- zerver/tests/test_signup.py | 2 ++ zerver/views/auth.py | 6 ++++++ zerver/views/registration.py | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/templates/zerver/login.html b/templates/zerver/login.html index 2b6473fa93..1ec2ca50de 100644 --- a/templates/zerver/login.html +++ b/templates/zerver/login.html @@ -92,7 +92,7 @@ common.autofocus('#id_username'); {% endif %} - {% if email %} + {% if already_registered %}
{{ _("You've already registered with this email address. Please sign in below.") }}
diff --git a/zerver/tests/test_signup.py b/zerver/tests/test_signup.py index 9e1c6ba9ba..a50cc983de 100644 --- a/zerver/tests/test_signup.py +++ b/zerver/tests/test_signup.py @@ -1135,6 +1135,8 @@ class UserSignUpTest(ZulipTestCase): result = self.client_post('/accounts/home/', {'email': email}) self.assertEqual(result.status_code, 302) self.assertIn('login', result['Location']) + result = self.client_get(result.url) + self.assert_in_response("You've already registered", result) def test_signup_invalid_name(self): # type: () -> None diff --git a/zerver/views/auth.py b/zerver/views/auth.py index 0c77cf8a63..e4eaa6a27e 100644 --- a/zerver/views/auth.py +++ b/zerver/views/auth.py @@ -495,6 +495,12 @@ def login_page(request, **kwargs): except KeyError: pass + try: + already_registered = request.GET['already_registered'] + template_response.context_data['already_registered'] = already_registered + except KeyError: + pass + try: template_response.context_data['subdomain'] = request.GET['subdomain'] template_response.context_data['wrong_subdomain_error'] = WRONG_SUBDOMAIN_ERROR diff --git a/zerver/views/registration.py b/zerver/views/registration.py index 7aa7a73580..18bf0dcdba 100644 --- a/zerver/views/registration.py +++ b/zerver/views/registration.py @@ -285,7 +285,8 @@ def send_registration_completion_email(email, request, realm_creation=False): def redirect_to_email_login_url(email): # type: (str) -> HttpResponseRedirect login_url = reverse('django.contrib.auth.views.login') - redirect_url = login_url + '?email=' + urllib.parse.quote_plus(email) + email = urllib.parse.quote_plus(email) + redirect_url = login_url + '?already_registered=' + email return HttpResponseRedirect(redirect_url) def create_realm(request, creation_key=None):