From 24566ce853513ecb5c8cde9a4797f499ef5a4e73 Mon Sep 17 00:00:00 2001 From: Tobias Wolf Date: Sat, 20 Aug 2022 09:01:18 +0200 Subject: [PATCH] Reset avatar if removed --- client/components/users/userAvatar.js | 3 ++- models/avatars.js | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/client/components/users/userAvatar.js b/client/components/users/userAvatar.js index d88d57ef8..6402cdcef 100644 --- a/client/components/users/userAvatar.js +++ b/client/components/users/userAvatar.js @@ -230,8 +230,9 @@ BlazeComponent.extendComponent({ 'click .js-select-initials'() { this.setAvatar(''); }, - 'click .js-delete-avatar'() { + 'click .js-delete-avatar'(event) { Avatars.remove(this.currentData()._id); + event.stopPropagation(); }, }, ]; diff --git a/models/avatars.js b/models/avatars.js index 6b210506c..bc95bc1b6 100644 --- a/models/avatars.js +++ b/models/avatars.js @@ -64,12 +64,10 @@ Avatars = new FilesCollection({ Avatars.update({ _id: fileObj._id }, { $set: { "versions": fileObj.versions } }); const isValid = Promise.await(isFileValid(fileObj, avatarsUploadMimeTypes, avatarsUploadSize, avatarsUploadExternalProgram)); - const user = Users.findOne(fileObj.userId); if (isValid) { - user.setAvatarUrl(`${formatFleURL(fileObj)}?auth=false&brokenIsFine=true`); + Users.findOne(fileObj.userId).setAvatarUrl(`${formatFleURL(fileObj)}?auth=false&brokenIsFine=true`); } else { - user.setAvatarUrl(''); Avatars.remove(fileObj._id); } }, @@ -77,6 +75,15 @@ Avatars = new FilesCollection({ const ret = fileStoreStrategyFactory.getFileStrategy(fileObj, versionName).interceptDownload(http, this.cacheControl); return ret; }, + onBeforeRemove(files) { + files.forEach(fileObj => { + if (fileObj.userId) { + Users.findOne(fileObj.userId).setAvatarUrl(''); + } + }); + + return true; + }, onAfterRemove(files) { files.forEach(fileObj => { Object.keys(fileObj.versions).forEach(versionName => {