Skip to content

Commit 231541d

Browse files
committed
Delete avatar if a user is deleted
Signed-off-by: Julius Härtl <jus@bitgrid.net>
1 parent 24d0fb9 commit 231541d

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

lib/private/Avatar/AvatarManager.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use OC\User\Manager;
3636
use OCP\Files\IAppData;
3737
use OCP\Files\NotFoundException;
38+
use OCP\Files\NotPermittedException;
3839
use OCP\IAvatar;
3940
use OCP\IAvatarManager;
4041
use OCP\IConfig;
@@ -125,6 +126,20 @@ public function clearCachedAvatars() {
125126
}
126127
}
127128

129+
/**
130+
* @param string $userId
131+
* @throws NotPermittedException
132+
*/
133+
public function deleteUserAvatar(string $userId) {
134+
try {
135+
$folder = $this->appData->getFolder($userId);
136+
$folder->delete();
137+
} catch (NotFoundException $e) {
138+
$this->logger->debug("No cache for the user $userId. Ignoring...");
139+
}
140+
$this->config->deleteUserValue($userId, 'avatar', 'generated');
141+
}
142+
128143
/**
129144
* Returns a GuestAvatar.
130145
*

lib/private/User/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
namespace OC\User;
3636

3737
use OC\Accounts\AccountManager;
38+
use OC\Avatar\AvatarManager;
3839
use OC\Files\Cache\Storage;
3940
use OC\Hooks\Emitter;
4041
use OC_Helper;
@@ -237,6 +238,10 @@ public function delete() {
237238
\OC::$server->getCommentsManager()->deleteReferencesOfActor('users', $this->uid);
238239
\OC::$server->getCommentsManager()->deleteReadMarksFromUser($this);
239240

241+
/** @var IAvatarManager $avatarManager */
242+
$avatarManager = \OC::$server->query(AvatarManager::class);
243+
$avatarManager->deleteUserAvatar($this->uid);
244+
240245
$notification = \OC::$server->getNotificationManager()->createNotification();
241246
$notification->setUser($this->uid);
242247
\OC::$server->getNotificationManager()->markProcessed($notification);

0 commit comments

Comments
 (0)