Koha/members
Jonathan Druart b93e15c235
Bug 30588: Add the option to require 2FA setup on first staff login
Bug 28786 added the ability to turn on a two-factor authentication,
using a One Time Password (OTP).
Once enabled on the system, librarian had the choice to enable or
disable it for themselves.
For security reason an administrator could decide to force the
librarians to use this second authentication step.

This patch adds a third option to the existing syspref, 'Enforced', for
that purpose.

QA notes: the code we had in the members/two_factor_auth.pl controller
has been moved to REST API controller methods (with their tests and
swagger specs), for reusability reason. Code from template has been
moved to an include file for the same reason.

Test plan:
A. Regression tests
As we modified the code we need first to confirm the existing features
are still working as expected.
1. Turn off TwoFactorAuthentication (disabled) and confirm that you are not able to
enable and access the second authentication step
2. Turn it on (enabled) and confirm that you are able to enable it in your account
3. Logout and confirm then that you are able to login into Koha

B. The new option
1. Set the pref to "enforced"
2. You are not logged out, logged in users stay logged in
3. Pick a user that does not have 2FA setup, login
4. Notice the new screen (UI is a bit ugly, suggestions welcomed)
5. Try to access Koha without enabling 2FA, you shouldn't be able to
access any pages
6. Setup 2FA and confirm that you are redirected to the login screen
7. Login, send the correct pin code
=> You are fully logged in!

Note that at 6 we could redirect to the mainpage, without the need to
login again, but I think it's preferable to reduce the change to
C4::Auth. If it's considered mandatory by QA I could have a look on
another bug report.

Sponsored-by: Rijksmuseum, Netherlands

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-10-21 11:36:57 -03:00
..
accountline-details.pl Bug 22435: Update accountline-details page to show all history 2021-08-04 14:06:43 +02:00
apikeys.pl Bug 29859: Use iterator instead of as_list 2022-02-09 15:36:23 -10:00
boraccount.pl Bug 29859: Use iterator instead of as_list 2022-02-09 15:36:23 -10:00
cancel-charge.pl Bug 29457: Pass context borrowernumber 2021-12-21 20:44:15 -10:00
default_messageprefs.pl Bug 18403: Update permissions - borrowers => 1|* becomes borrowers => 'edit_borrowers' 2018-02-12 15:41:37 -03:00
deletemem.pl Bug 23991: Move SearchSuggestion to Koha::Suggestions 2022-06-27 12:30:28 -03:00
discharge.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
discharges.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
files.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
holdshistory.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
housebound.pl Bug 30718: Use flatpickr's altInput 2022-08-19 08:26:31 -03:00
ill-requests.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
mancredit.pl Bug 29987: (follow-up) Fix missing payment type 2022-10-21 10:18:53 -03:00
maninvoice.pl Bug 31254: Add additional fields for accountlines 2022-09-21 18:58:28 -03:00
member-flags.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
member-password.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
member.pl Bug 30485: (bug 30063 follow-up) Display all patrons if not term passed 2022-04-13 15:55:39 +02:00
memberentry.pl Bug 31562: Treat flags as other borrower fields 2022-09-22 09:24:41 -03:00
members-home.pl Bug 30485: (bug 30063 follow-up) Display all patrons if not term passed 2022-04-13 15:55:39 +02:00
members-update-do.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
members-update.pl Bug 29844: Fix ->search occurrences 2022-02-09 15:36:23 -10:00
merge-patrons.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
mod_debarment.pl Bug 23681: Allow for selection of restriction type 2022-08-25 08:41:01 -03:00
moremember.pl Bug 23681: Move to ::Patron::Restriction::Type(s) 2022-08-25 08:50:35 -03:00
notices.pl Bug 30611: Add ability for staff to send password reset emails 2022-05-10 15:17:17 -10:00
patronimage.pl Bug 29541: Prevent users from another group to access patron's images 2022-02-02 21:05:29 -10:00
pay.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
paycollect.pl Bug 31254: Add additional fields for accountlines 2022-09-21 18:58:28 -03:00
print_overdues.pl Bug 30420: Rename Koha::Patron->get_overdues with ->overdues 2022-06-14 08:46:05 -03:00
printfeercpt.pl Bug 26689: Prepend letter codes. 2022-07-22 15:01:36 -03:00
printinvoice.pl Bug 26689: Prepend letter codes. 2022-07-22 15:01:36 -03:00
printnotice.pl Bug 31714: Add Generic way to print patron slips 2022-10-21 10:09:03 -03:00
printslip.pl Bug 29062: Use primary key issued_id to fetch old_issues for letters 2021-10-07 15:49:01 +02:00
purchase-suggestions.pl Bug 23991: Move SearchSuggestion to Koha::Suggestions 2022-06-27 12:30:28 -03:00
readingrec.pl Bug 23838: Add renewals modal 2022-07-22 11:39:09 -03:00
recallshistory.pl Bug 30291: Changes to staff client files 2022-05-05 11:17:36 -10:00
routing-lists.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
search.pl Bug 30093: Make patron search from request.pl use the REST API 2022-04-04 09:47:00 +02:00
setstatus.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
statistics.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
summary-print.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
two_factor_auth.pl Bug 30588: Add the option to require 2FA setup on first staff login 2022-10-21 11:36:57 -03:00
update-child.pl Bug 29844: Fix ->search occurrences 2022-02-09 15:36:23 -10:00