Merge pull request #506 from alphagov/reset_failed_login_count

Failed login count set to zero with password reset.
This commit is contained in:
NIcholas Staples
2016-04-26 12:30:52 +01:00
6 changed files with 62 additions and 10 deletions

View File

@@ -5,7 +5,8 @@ from flask import (
session,
flash,
request,
abort
abort,
Markup
)
from flask.ext.login import (
@@ -69,7 +70,11 @@ def sign_in():
else:
return redirect(url_for('.two_factor'))
# Vague error message for login in case of user not known, locked, inactive or password not verified
flash('Username or password is incorrect')
flash(Markup((
"The email address or password you entered is incorrect."
" <a href={password_reset}>Forgot your password</a>?"
).format(password_reset=url_for('.forgot_password'))
))
return render_template('views/signin.html', form=form)

View File

@@ -34,6 +34,7 @@ def two_factor():
# Check if coming from new password page
if 'password' in session['user_details']:
user.set_password(session['user_details']['password'])
user.reset_failed_login_count()
user_api_client.update_user(user)
login_user(user, remember=True)
finally:

View File

@@ -108,6 +108,9 @@ class User(UserMixin):
def failed_login_count(self, num):
self._failed_login_count += num
def reset_failed_login_count(self):
self._failed_login_count = 0
def is_locked(self):
return self.failed_login_count >= self.max_failed_login_count