diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-01-08 10:51:44 +0100 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-01-08 10:51:44 +0100 |
commit | 60d4b45e8924b2d8ccc2326a1f463ee9dae32905 (patch) | |
tree | bde191dd49f493e70749b56215aff7415128723e /lib/private/Authentication/TwoFactorAuth | |
parent | 69ae7abe72fd032adbec1c7dc01fca64aea2fbe8 (diff) | |
download | nextcloud-server-60d4b45e8924b2d8ccc2326a1f463ee9dae32905.tar.gz nextcloud-server-60d4b45e8924b2d8ccc2326a1f463ee9dae32905.zip |
Clean up 2FA provider registry when a user is deleted
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/private/Authentication/TwoFactorAuth')
-rw-r--r-- | lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php | 9 | ||||
-rw-r--r-- | lib/private/Authentication/TwoFactorAuth/Registry.php | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php b/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php index adf16887efa..4e8f9731d94 100644 --- a/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php +++ b/lib/private/Authentication/TwoFactorAuth/Db/ProviderUserAssignmentDao.php @@ -93,6 +93,15 @@ class ProviderUserAssignmentDao { } + public function deleteByUser(string $uid) { + $qb = $this->conn->getQueryBuilder(); + + $deleteQuery = $qb->delete(self::TABLE_NAME) + ->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid))); + + $deleteQuery->execute(); + } + public function deleteAll(string $providerId) { $qb = $this->conn->getQueryBuilder(); diff --git a/lib/private/Authentication/TwoFactorAuth/Registry.php b/lib/private/Authentication/TwoFactorAuth/Registry.php index 151299b28e3..97df2bd5311 100644 --- a/lib/private/Authentication/TwoFactorAuth/Registry.php +++ b/lib/private/Authentication/TwoFactorAuth/Registry.php @@ -66,6 +66,13 @@ class Registry implements IRegistry { $this->dispatcher->dispatch(self::EVENT_PROVIDER_DISABLED, $event); } + /** + * @todo evaluate if we should emit RegistryEvents for each of the deleted rows -> needs documentation + */ + public function deleteUserData(IUser $user): void { + $this->assignmentDao->deleteByUser($user->getUID()); + } + public function cleanUp(string $providerId) { $this->assignmentDao->deleteAll($providerId); } |