diff --git a/core/Controller/TwoFactorChallengeController.php b/core/Controller/TwoFactorChallengeController.php index cf7144bc76d45..ee6b360cff054 100644 --- a/core/Controller/TwoFactorChallengeController.php +++ b/core/Controller/TwoFactorChallengeController.php @@ -113,6 +113,9 @@ public function showChallenge(string $challengeProviderId, ?string $redirect_url $backupProvider = null; } + [$regularProviders] = $this->splitProvidersAndBackupCodes($providerSet->getProviders()); + $otherProviders = array_filter($regularProviders, fn (IProvider $p) => $p->getId() !== $provider->getId()); + $errorMessage = ''; $error = false; if ($this->session->exists('two_factor_auth_error')) { @@ -128,6 +131,7 @@ public function showChallenge(string $challengeProviderId, ?string $redirect_url 'error_message' => $errorMessage, 'provider' => $provider, 'backupProvider' => $backupProvider, + 'hasOtherProviders' => $otherProviders !== [], 'logout_url' => $this->getLogoutUrl(), 'redirect_url' => $redirect_url, 'template' => $tmpl->fetchPage(), diff --git a/core/templates/twofactorshowchallenge.php b/core/templates/twofactorshowchallenge.php index 6bc367d4025ac..bca61195932e5 100644 --- a/core/templates/twofactorshowchallenge.php +++ b/core/templates/twofactorshowchallenge.php @@ -26,6 +26,17 @@ + +

+ + t('Use another method')) ?> + +

+