From 9f501da3ed1f20b4ed3a6abc0fa52235d24ffcbf Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 6 Dec 2023 11:26:20 +0000 Subject: [PATCH] fixes #3532 Closes #3532 Merge request studip/studip!2426 --- app/controllers/tfa.php | 8 ++++++++ app/views/tfa/index.php | 5 ++++- app/views/tfa/setup.php | 11 ++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/controllers/tfa.php b/app/controllers/tfa.php index 1b57f26d094..370d8837a91 100644 --- a/app/controllers/tfa.php +++ b/app/controllers/tfa.php @@ -11,6 +11,8 @@ class TfaController extends AuthenticatedController $this->user = User::findCurrent(); $this->is_root = $GLOBALS['perm']->have_perm('root'); + $this->own_profile = true; + if ($this->is_root && Request::submitted('username')) { $username = Request::username('username'); $this->user = User::findOneByUsername($username); @@ -19,6 +21,8 @@ class TfaController extends AuthenticatedController throw new Exception(_('Diesen Nutzer gibt es nicht')); } + $this->own_profile = false; + URLHelper::addLinkParam('username', Request::username('username')); PageLayout::postMessage( @@ -33,6 +37,10 @@ class TfaController extends AuthenticatedController } $this->secret = new TFASecret($this->user->id); + + if (!$this->own_profile) { + PageLayout::postWarning(_('Sie können die Zwei-Faktor-Authentifizierung nicht für andere Personen einrichten.')); + } } public function index_action() diff --git a/app/views/tfa/index.php b/app/views/tfa/index.php index 25ab9533a15..b4367f03bbb 100644 --- a/app/views/tfa/index.php +++ b/app/views/tfa/index.php @@ -2,6 +2,7 @@ /** * @var TFASecret $secret * @var TfaController $controller + * @var bool $own_profile */ ?> <p> @@ -9,5 +10,7 @@ <?= $secret->type == 'app' ? _('Authenticator-App') : _('E-Mail') ?> </p> <form action="<?= $controller->revoke() ?>" method="post"> - <?= Studip\Button::createAccept(_('Aufheben')) ?> + <?= Studip\Button::createAccept(_('Aufheben'), 'revoke', $own_profile ? [] : [ + 'disabled' => '' + ]) ?> </form> diff --git a/app/views/tfa/setup.php b/app/views/tfa/setup.php index 62278dd2b5f..e4a0a3defef 100644 --- a/app/views/tfa/setup.php +++ b/app/views/tfa/setup.php @@ -1,6 +1,7 @@ <?php /** * @var TfaController $controller + * @var bool $own_profile */ ?> <form class="default" action="<?= $controller->create() ?>" method="post"> @@ -12,17 +13,21 @@ <?= formatReady(Config::get()->TFA_TEXT_INTRODUCTION) ?> <label> - <input required type="radio" name="type" value="email"> + <input required type="radio" name="type" value="email" + <? if (!$own_profile) echo 'disabled'; ?>> <?= _('E-Mail') ?> </label> <label> - <input required type="radio" name="type" value="app"> + <input required type="radio" name="type" value="app" + <? if (!$own_profile) echo 'disabled'; ?>> <?= _('Authenticator-App') ?> </label> </fieldset> <footer> - <?= Studip\Button::createAccept(_('Aktivieren')) ?> + <?= Studip\Button::createAccept(_('Aktivieren'), 'activate', $own_profile ? [] : [ + 'disabled' => '' + ]) ?> </footer> </form> -- GitLab