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.
This commit is contained in:
Umair Khan
2017-08-28 11:13:15 +05:00
committed by Tim Abbott
parent bb655e6945
commit ecfafc05c0
4 changed files with 11 additions and 2 deletions

View File

@@ -92,7 +92,7 @@ common.autofocus('#id_username');
</div>
{% endif %}
{% if email %}
{% if already_registered %}
<div class="alert">
{{ _("You've already registered with this email address. Please sign in below.") }}
</div>

View File

@@ -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

View File

@@ -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

View File

@@ -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):