, array{}>|DataResponse * * 200: provider states * 404: user not found */ #[ApiRoute(verb: 'GET', url: '/state', root: '/twofactor')] public function state(string $user): DataResponse { $userObject = $this->userManager->get($user); if ($userObject !== null) { $state = $this->tfRegistry->getProviderStates($userObject); return new DataResponse($state); } return new DataResponse(null, Http::STATUS_NOT_FOUND); } /** * Enable two factor authentication providers for specific user * * @param string $user system user identifier * @param list $providers collection of TFA provider ids * * @return DataResponse, array{}>|DataResponse * * 200: provider states * 404: user not found */ #[ApiRoute(verb: 'POST', url: '/enable', root: '/twofactor')] public function enable(string $user, array $providers = []): DataResponse { $userObject = $this->userManager->get($user); if ($userObject !== null) { foreach ($providers as $providerId) { $this->tfManager->tryEnableProviderFor($providerId, $userObject); } $state = $this->tfRegistry->getProviderStates($userObject); return new DataResponse($state); } return new DataResponse(null, Http::STATUS_NOT_FOUND); } /** * Disable two factor authentication providers for specific user * * @param string $user system user identifier * @param list $providers collection of TFA provider ids * * @return DataResponse, array{}>|DataResponse * * 200: provider states * 404: user not found */ #[ApiRoute(verb: 'POST', url: '/disable', root: '/twofactor')] public function disable(string $user, array $providers = []): DataResponse { $userObject = $this->userManager->get($user); if ($userObject !== null) { foreach ($providers as $providerId) { $this->tfManager->tryDisableProviderFor($providerId, $userObject); } $state = $this->tfRegistry->getProviderStates($userObject); return new DataResponse($state); } return new DataResponse(null, Http::STATUS_NOT_FOUND); } }