0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-01-16 16:19:00 +00:00
nextcloud_server/apps/settings/lib/Settings/Personal/Security/WebAuthn.php
provokateurin 35d614057c
fix(settings): Fix dependency injection
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-28 08:14:17 +01:00

58 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Settings\Settings\Personal\Security;
use OC\Authentication\WebAuthn\Db\PublicKeyCredentialMapper;
use OC\Authentication\WebAuthn\Manager;
use OCA\Settings\AppInfo\Application;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IInitialStateService;
use OCP\Settings\ISettings;
class WebAuthn implements ISettings {
/** @var PublicKeyCredentialMapper */
private $mapper;
/** @var Manager */
private $manager;
public function __construct(
PublicKeyCredentialMapper $mapper,
private string $userId,
private IInitialStateService $initialStateService,
Manager $manager,
) {
$this->mapper = $mapper;
$this->manager = $manager;
}
public function getForm() {
$this->initialStateService->provideInitialState(
Application::APP_ID,
'webauthn-devices',
$this->mapper->findAllForUid($this->userId)
);
return new TemplateResponse('settings', 'settings/personal/security/webauthn', [
]);
}
public function getSection(): ?string {
if (!$this->manager->isWebAuthnAvailable()) {
return null;
}
return 'security';
}
public function getPriority(): int {
return 20;
}
}