Merge pull request #19929 from nextcloud/bugfix/user-delete-avatar
Delete avatar if a user is deleted
This commit is contained in:
commit
673267cd91
|
@ -33,8 +33,10 @@ declare(strict_types=1);
|
||||||
namespace OC\Avatar;
|
namespace OC\Avatar;
|
||||||
|
|
||||||
use OC\User\Manager;
|
use OC\User\Manager;
|
||||||
|
use OC\User\NoUserException;
|
||||||
use OCP\Files\IAppData;
|
use OCP\Files\IAppData;
|
||||||
use OCP\Files\NotFoundException;
|
use OCP\Files\NotFoundException;
|
||||||
|
use OCP\Files\NotPermittedException;
|
||||||
use OCP\IAvatar;
|
use OCP\IAvatar;
|
||||||
use OCP\IAvatarManager;
|
use OCP\IAvatarManager;
|
||||||
use OCP\IConfig;
|
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.
|
* Returns a GuestAvatar.
|
||||||
*
|
*
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
namespace OC\User;
|
namespace OC\User;
|
||||||
|
|
||||||
use OC\Accounts\AccountManager;
|
use OC\Accounts\AccountManager;
|
||||||
|
use OC\Avatar\AvatarManager;
|
||||||
use OC\Files\Cache\Storage;
|
use OC\Files\Cache\Storage;
|
||||||
use OC\Hooks\Emitter;
|
use OC\Hooks\Emitter;
|
||||||
use OC_Helper;
|
use OC_Helper;
|
||||||
|
@ -238,6 +239,10 @@ class User implements IUser {
|
||||||
\OC::$server->getCommentsManager()->deleteReferencesOfActor('users', $this->uid);
|
\OC::$server->getCommentsManager()->deleteReferencesOfActor('users', $this->uid);
|
||||||
\OC::$server->getCommentsManager()->deleteReadMarksFromUser($this);
|
\OC::$server->getCommentsManager()->deleteReadMarksFromUser($this);
|
||||||
|
|
||||||
|
/** @var IAvatarManager $avatarManager */
|
||||||
|
$avatarManager = \OC::$server->query(AvatarManager::class);
|
||||||
|
$avatarManager->deleteUserAvatar($this->uid);
|
||||||
|
|
||||||
$notification = \OC::$server->getNotificationManager()->createNotification();
|
$notification = \OC::$server->getNotificationManager()->createNotification();
|
||||||
$notification->setUser($this->uid);
|
$notification->setUser($this->uid);
|
||||||
\OC::$server->getNotificationManager()->markProcessed($notification);
|
\OC::$server->getNotificationManager()->markProcessed($notification);
|
||||||
|
|
Loading…
Reference in New Issue