Merge pull request #313 from alphagov/do-not-throw-404

Do not throw 404 if email address is not found on sign in.
This commit is contained in:
Rebecca Law
2016-03-21 11:55:04 +00:00
3 changed files with 12 additions and 16 deletions

View File

@@ -36,12 +36,7 @@ def accept_invite(token):
session['invited_user'] = invited_user.serialize() session['invited_user'] = invited_user.serialize()
try: existing_user = user_api_client.get_user_by_email_or_none(invited_user.email_address)
existing_user = user_api_client.get_user_by_email(invited_user.email_address)
except HTTPError as ex:
if ex.status_code == 404:
existing_user = False
service_users = user_api_client.get_users_for_service(invited_user.service) service_users = user_api_client.get_users_for_service(invited_user.service)
if existing_user: if existing_user:

View File

@@ -29,7 +29,7 @@ def sign_in():
form = LoginForm() form = LoginForm()
if form.validate_on_submit(): if form.validate_on_submit():
user = user_api_client.get_user_by_email(form.email_address.data) user = user_api_client.get_user_by_email_or_none(form.email_address.data)
user = _get_and_verify_user(user, form.password.data) user = _get_and_verify_user(user, form.password.data)
if user: if user:
# Remember me login # Remember me login

View File

@@ -35,6 +35,13 @@ class UserApiClient(BaseAPIClient):
user_data = self.get('/user/email', params={'email': email_address}) user_data = self.get('/user/email', params={'email': email_address})
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count) return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
def get_user_by_email_or_none(self, email_address):
try:
return self.get_user_by_email(email_address)
except HTTPError as e:
if HTTPError.status_code == 404:
return None
def get_users(self): def get_users(self):
users_data = self.get("/user")['data'] users_data = self.get("/user")['data']
users = [] users = []
@@ -106,15 +113,9 @@ class UserApiClient(BaseAPIClient):
self.post(endpoint, data=data) self.post(endpoint, data=data)
def is_email_unique(self, email_address): def is_email_unique(self, email_address):
try: if self.get_user_by_email_or_none(email_address):
if self.get_user_by_email(email_address): return False
return False return True
return True
except HTTPError as ex:
if ex.status_code == 404:
return True
else:
raise ex
def activate_user(self, user): def activate_user(self, user):
user.state = 'active' user.state = 'active'