aboutsummaryrefslogtreecommitdiffstats
path: root/apps/twofactor_backupcodes/lib
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2021-08-13 15:28:56 +0200
committerChristoph Wurst <christoph@winzerhof-wurst.at>2021-08-24 14:00:13 +0200
commitd0d903c0f1d42ef580c99caeff2b2fb29c66cf1a (patch)
tree4e2f49eb4c9085d359a0d28e1adcf6c996065b2f /apps/twofactor_backupcodes/lib
parent7ab39effd3d8d1ead9fac5bd475da024826b07c5 (diff)
downloadnextcloud-server-d0d903c0f1d42ef580c99caeff2b2fb29c66cf1a.tar.gz
nextcloud-server-d0d903c0f1d42ef580c99caeff2b2fb29c66cf1a.zip
Allow admins to disable 2FA backup codes via occ
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'apps/twofactor_backupcodes/lib')
-rw-r--r--apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php8
-rw-r--r--apps/twofactor_backupcodes/lib/Service/BackupCodeStorage.php4
2 files changed, 10 insertions, 2 deletions
diff --git a/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php b/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php
index c34497393e8..a9ef2a2b252 100644
--- a/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php
+++ b/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php
@@ -30,15 +30,15 @@ namespace OCA\TwoFactorBackupCodes\Provider;
use OC\App\AppManager;
use OCA\TwoFactorBackupCodes\Service\BackupCodeStorage;
use OCA\TwoFactorBackupCodes\Settings\Personal;
+use OCP\Authentication\TwoFactorAuth\IDeactivatableByAdmin;
use OCP\Authentication\TwoFactorAuth\IPersonalProviderSettings;
-use OCP\Authentication\TwoFactorAuth\IProvider;
use OCP\Authentication\TwoFactorAuth\IProvidesPersonalSettings;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\IUser;
use OCP\Template;
-class BackupCodesProvider implements IProvider, IProvidesPersonalSettings {
+class BackupCodesProvider implements IDeactivatableByAdmin, IProvidesPersonalSettings {
/** @var string */
private $appName;
@@ -164,4 +164,8 @@ class BackupCodesProvider implements IProvider, IProvidesPersonalSettings {
$this->initialStateService->provideInitialState($this->appName, 'state', $state);
return new Personal();
}
+
+ public function disableFor(IUser $user) {
+ $this->storage->deleteCodes($user);
+ }
}
diff --git a/apps/twofactor_backupcodes/lib/Service/BackupCodeStorage.php b/apps/twofactor_backupcodes/lib/Service/BackupCodeStorage.php
index 869833dbd46..4ecff652ae7 100644
--- a/apps/twofactor_backupcodes/lib/Service/BackupCodeStorage.php
+++ b/apps/twofactor_backupcodes/lib/Service/BackupCodeStorage.php
@@ -136,4 +136,8 @@ class BackupCodeStorage {
}
return false;
}
+
+ public function deleteCodes(IUser $user): void {
+ $this->mapper->deleteCodes($user);
+ }
}