diff options
Diffstat (limited to 'lib/private/Avatar/AvatarManager.php')
-rw-r--r-- | lib/private/Avatar/AvatarManager.php | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/private/Avatar/AvatarManager.php b/lib/private/Avatar/AvatarManager.php index 3bb0c4077e2..37f57c90769 100644 --- a/lib/private/Avatar/AvatarManager.php +++ b/lib/private/Avatar/AvatarManager.php @@ -33,8 +33,10 @@ declare(strict_types=1); namespace OC\Avatar; use OC\User\Manager; +use OC\User\NoUserException; use OCP\Files\IAppData; use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; use OCP\IAvatar; use OCP\IAvatarManager; use OCP\IConfig; @@ -125,6 +127,20 @@ class AvatarManager implements IAvatarManager { } } + public function deleteUserAvatar(string $userId): void { + try { + $folder = $this->appData->getFolder($userId); + $folder->delete(); + } catch (NotFoundException $e) { + $this->logger->debug("No cache for the user $userId. Ignoring avatar deletion"); + } catch (NotPermittedException $e) { + $this->logger->error("Unable to delete user avatars for $userId. gnoring avatar deletion"); + } catch (NoUserException $e) { + $this->logger->debug("User $userId not found. gnoring avatar deletion"); + } + $this->config->deleteUserValue($userId, 'avatar', 'generated'); + } + /** * Returns a GuestAvatar. * |