File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3333namespace OC \Avatar ;
3434
3535use OC \User \Manager ;
36+ use OC \User \NoUserException ;
3637use OCP \Files \IAppData ;
3738use OCP \Files \NotFoundException ;
39+ use OCP \Files \NotPermittedException ;
3840use OCP \IAvatar ;
3941use OCP \IAvatarManager ;
4042use OCP \IConfig ;
@@ -125,6 +127,20 @@ public function clearCachedAvatars() {
125127 }
126128 }
127129
130+ public function deleteUserAvatar (string $ userId ): void {
131+ try {
132+ $ folder = $ this ->appData ->getFolder ($ userId );
133+ $ folder ->delete ();
134+ } catch (NotFoundException $ e ) {
135+ $ this ->logger ->debug ("No cache for the user $ userId. Ignoring avatar deletion " );
136+ } catch (NotPermittedException $ e ) {
137+ $ this ->logger ->error ("Unable to delete user avatars for $ userId. gnoring avatar deletion " );
138+ } catch (NoUserException $ e ) {
139+ $ this ->logger ->debug ("User $ userId not found. gnoring avatar deletion " );
140+ }
141+ $ this ->config ->deleteUserValue ($ userId , 'avatar ' , 'generated ' );
142+ }
143+
128144 /**
129145 * Returns a GuestAvatar.
130146 *
Original file line number Diff line number Diff line change 3636namespace OC \User ;
3737
3838use OC \Accounts \AccountManager ;
39+ use OC \Avatar \AvatarManager ;
3940use OC \Files \Cache \Storage ;
4041use OC \Hooks \Emitter ;
4142use OC_Helper ;
@@ -238,6 +239,10 @@ public function delete() {
238239 \OC ::$ server ->getCommentsManager ()->deleteReferencesOfActor ('users ' , $ this ->uid );
239240 \OC ::$ server ->getCommentsManager ()->deleteReadMarksFromUser ($ this );
240241
242+ /** @var IAvatarManager $avatarManager */
243+ $ avatarManager = \OC ::$ server ->query (AvatarManager::class);
244+ $ avatarManager ->deleteUserAvatar ($ this ->uid );
245+
241246 $ notification = \OC ::$ server ->getNotificationManager ()->createNotification ();
242247 $ notification ->setUser ($ this ->uid );
243248 \OC ::$ server ->getNotificationManager ()->markProcessed ($ notification );
You can’t perform that action at this time.
0 commit comments