mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-25 08:44:23 -04:00
Fix the user flow when the user account is locked.
The user has 10 tries at the password, after which the account is locked. The same is true for the verify code, the user will have 10 tries before the user account is locked.
This commit is contained in:
@@ -30,6 +30,7 @@ def new_password(token):
|
||||
|
||||
if form.validate_on_submit():
|
||||
user_api_client.send_verify_code(user.id, 'sms', user.mobile_number)
|
||||
user_api_client.reset_failed_login_count(user.id)
|
||||
session['user_details'] = {
|
||||
'id': user.id,
|
||||
'email': user.email_address,
|
||||
|
||||
@@ -32,9 +32,6 @@ def two_factor():
|
||||
# Check if coming from new password page
|
||||
if 'password' in session['user_details']:
|
||||
user = user_api_client.update_password(user.id, password=session['user_details']['password'])
|
||||
if user.is_locked():
|
||||
form.sms_code.errors.append('Code not found')
|
||||
return render_template('views/two-factor.html', form=form)
|
||||
activated_user = user_api_client.activate_user(user)
|
||||
login_user(activated_user, remember=True)
|
||||
finally:
|
||||
|
||||
@@ -75,6 +75,11 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
user_data = self.post(url, data=data)
|
||||
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
def reset_failed_login_count(self, user_id):
|
||||
url = "/user/{}/reset-failed-login-count".format(user_id)
|
||||
user_data = self.post(url, data={})
|
||||
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
def update_password(self, user_id, password):
|
||||
data = {"_password": password}
|
||||
url = "/user/{}/update-password".format(user_id)
|
||||
@@ -152,7 +157,6 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
def activate_user(self, user):
|
||||
if user.state == 'pending':
|
||||
user.state = 'active'
|
||||
user._failed_login_count = 0
|
||||
return self.update_user(user)
|
||||
else:
|
||||
return user
|
||||
|
||||
Reference in New Issue
Block a user