Koha/koha-tmpl/opac-tmpl/bootstrap
Jonathan Druart cfc484b173 Bug 18314: Account lockout
To prevent brute force attacks on Koha accounts, staff and opac, we need to
implement an account lockout process to Koha.

After a number of failed login attempts a users account would become locked.
The user would then need to use the reset password functionality to send a reset
token to their email account. After a successful password reset the lockout flag
would be removed.

The number of failed login attempts before lockout is configurable using a new
system preference 'FailedLoginAttempts'.

How does it work?
When a patron enter an invalid password, the borrowers.login_attempts value
for this patron is incremented. When this value reach the value of the
pref FailedLoginAttempts, the password comparison is not done and the
authentication is rejected.
This login_attempts field is reset when a patron correctly logs in. When
the account is locked the patron has to reset his/her password using
the OpacResetPassword feature or ask a staff member to generate a new
password.
If the pref is not set (0, or '') the feature is considered as disabled,
but the failed login attempts are stored anyway.

Test plan:
0/ Apply patch and execute the update DB entry
1/ Switch on the feature by setting FailedLoginAttempts to 3
2/ Use an invalid password to login at the staff or OPAC interface
3/ After the third consecutive failures, you will be asked to reset your
password if OpacResetPassword is set, or contact a staff member
4/ Switch on OpacResetPassword and reset your password
5/ Confirm that you are able to login
6/ Play with the different combinations

QA details: The trick happens in C4::Auth::checkpw, to make things clear
I had to create a return value (note the awesome name: @return) and
replace the 3 successives if statements with elsif. Indeed if one of
the condition is reached, it will return inside the given block.

Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2017-05-12 10:58:44 -04:00
..
css Bug 17936 [Generated CSS] Search bar not aligned on right in small screen sizes 2017-05-12 09:18:04 -04:00
en Bug 18314: Account lockout 2017-05-12 10:58:44 -04:00
images Bug 10309 - New OPAC theme based on Bootstrap 2013-10-14 23:13:05 +00:00
itemtypeimg Bug 10309 - New OPAC theme based on Bootstrap 2013-10-14 23:13:05 +00:00
js bug_16034 Add overdrive info to the users page in the public interface 2017-02-21 19:58:21 +00:00
less Bug 17936 - Search bar not aligned on right in small screen sizes 2017-05-12 09:10:16 -04:00
lib Bug 13696: Add support for Font Awesome icons in Koha 2015-10-27 09:57:23 -03:00