From c9fe9371dbdba6b7b610df83abd613e1d36ffd48 Mon Sep 17 00:00:00 2001 From: Bernard Scaife Date: Fri, 11 Oct 2024 17:23:20 +0100 Subject: [PATCH] Adding ability for site admin to switch 2fa on or off site-wide --- app/Http/RequestHandlers/AccountEdit.php | 3 +++ app/Http/RequestHandlers/SiteRegistrationAction.php | 2 ++ resources/views/admin/site-registration.phtml | 13 +++++++++++++ resources/views/edit-account-page.phtml | 3 +++ 4 files changed, 21 insertions(+) diff --git a/app/Http/RequestHandlers/AccountEdit.php b/app/Http/RequestHandlers/AccountEdit.php index c69f0d0bdd8..37181490126 100644 --- a/app/Http/RequestHandlers/AccountEdit.php +++ b/app/Http/RequestHandlers/AccountEdit.php @@ -28,6 +28,7 @@ use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\MessageService; use Fisharebest\Webtrees\Services\ModuleService; +use Fisharebest\Webtrees\Site; use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\Validator; use Psr\Http\Message\ResponseInterface; @@ -83,6 +84,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface }); $show_delete_option = $user->getPreference(UserInterface::PREF_IS_ADMINISTRATOR) !== '1'; + $show_2fa = Site::getPreference('SHOW_2FA_OPTION') === '1'; $timezone_ids = DateTimeZone::listIdentifiers(); $timezones = array_combine($timezone_ids, $timezone_ids); $title = I18N::translate('My account'); @@ -93,6 +95,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface 'languages' => $languages->all(), 'my_individual_record' => $my_individual_record, 'show_delete_option' => $show_delete_option, + 'show_2fa' => $show_2fa, 'timezones' => $timezones, 'title' => $title, 'tree' => $tree, diff --git a/app/Http/RequestHandlers/SiteRegistrationAction.php b/app/Http/RequestHandlers/SiteRegistrationAction.php index 6e58dfec0fa..06df7a75dbc 100644 --- a/app/Http/RequestHandlers/SiteRegistrationAction.php +++ b/app/Http/RequestHandlers/SiteRegistrationAction.php @@ -46,11 +46,13 @@ public function handle(ServerRequestInterface $request): ResponseInterface $text = Validator::parsedBody($request)->string('WELCOME_TEXT_AUTH_MODE_4'); $allow_registration = Validator::parsedBody($request)->boolean('USE_REGISTRATION_MODULE'); $show_caution = Validator::parsedBody($request)->boolean('SHOW_REGISTER_CAUTION'); + $show_2fa = Validator::parsedBody($request)->boolean('SHOW_2FA_OPTION'); Site::setPreference('WELCOME_TEXT_AUTH_MODE', $mode); Site::setPreference('WELCOME_TEXT_AUTH_MODE_' . I18N::languageTag(), $text); Site::setPreference('USE_REGISTRATION_MODULE', (string) $allow_registration); Site::setPreference('SHOW_REGISTER_CAUTION', (string) $show_caution); + Site::setPreference('SHOW_2FA_OPTION', (string) $show_2fa); FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); diff --git a/resources/views/admin/site-registration.phtml b/resources/views/admin/site-registration.phtml index 930121f0ef7..b7f6e5c67ca 100644 --- a/resources/views/admin/site-registration.phtml +++ b/resources/views/admin/site-registration.phtml @@ -72,6 +72,19 @@ use Fisharebest\Webtrees\Site; + +
+ + + +
+ 'SHOW_2FA_OPTION', 'options' => [I18N::translate('no'), I18N::translate('yes')], 'selected' => (int) Site::getPreference('SHOW_2FA_OPTION')]) ?> +
+
+
+
+
+
@@ -164,6 +166,7 @@ use Fisharebest\Webtrees\Tree;
+
genQRcode(); ?>