diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-09-19 14:05:32 +0300 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-09-19 14:06:27 +0300 |
commit | 85f45d4bc5929b6e789833bb31b4a841cd5f06e2 (patch) | |
tree | 3de532b0a21158174eb0b56a7f800fbe6236a3b3 /core | |
parent | aed4ee9f81aabdcc6c583321182a8ec6623b8c38 (diff) |
[stable9.1] Redirect to challenge page when only one 2FA provider (#26141)
If only one two factor provider exists, spare the user from having to
select it and redirect directly to its challenge page.
Diffstat (limited to 'core')
-rw-r--r-- | core/Controller/TwoFactorChallengeController.php | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/Controller/TwoFactorChallengeController.php b/core/Controller/TwoFactorChallengeController.php index edaf3378cd8..1e2652c0185 100644 --- a/core/Controller/TwoFactorChallengeController.php +++ b/core/Controller/TwoFactorChallengeController.php @@ -78,6 +78,19 @@ class TwoFactorChallengeController extends Controller { public function selectChallenge($redirect_url) { $user = $this->userSession->getUser(); $providers = $this->twoFactorManager->getProviders($user); + if (count($providers) === 1) { + // redirect to the challenge page + $provider = current($providers); + return new RedirectResponse( + $this->urlGenerator->linkToRoute( + 'core.TwoFactorChallenge.showChallenge', + [ + 'challengeProviderId' => $provider->getId(), + 'redirect_url' => $redirect_url, + ] + ) + ); + } $data = [ 'providers' => $providers, |