diff options
Diffstat (limited to 'apps/settings/lib/Controller/TwoFactorSettingsController.php')
-rw-r--r-- | apps/settings/lib/Controller/TwoFactorSettingsController.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/apps/settings/lib/Controller/TwoFactorSettingsController.php b/apps/settings/lib/Controller/TwoFactorSettingsController.php new file mode 100644 index 00000000000..e08fca8ec6c --- /dev/null +++ b/apps/settings/lib/Controller/TwoFactorSettingsController.php @@ -0,0 +1,41 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Settings\Controller; + +use OC\Authentication\TwoFactorAuth\EnforcementState; +use OC\Authentication\TwoFactorAuth\MandatoryTwoFactor; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; + +class TwoFactorSettingsController extends Controller { + + /** @var MandatoryTwoFactor */ + private $mandatoryTwoFactor; + + public function __construct(string $appName, + IRequest $request, + MandatoryTwoFactor $mandatoryTwoFactor) { + parent::__construct($appName, $request); + + $this->mandatoryTwoFactor = $mandatoryTwoFactor; + } + + public function index(): JSONResponse { + return new JSONResponse($this->mandatoryTwoFactor->getState()); + } + + public function update(bool $enforced, array $enforcedGroups = [], array $excludedGroups = []): JSONResponse { + $this->mandatoryTwoFactor->setState( + new EnforcementState($enforced, $enforcedGroups, $excludedGroups) + ); + + return new JSONResponse($this->mandatoryTwoFactor->getState()); + } +} |