diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js index 42f78abc25..9118203317 100644 --- a/src/socket.io/user/profile.js +++ b/src/socket.io/user/profile.js @@ -36,6 +36,7 @@ module.exports = function (SocketUser) { } await user.isAdminOrGlobalModOrSelf(socket.uid, data.uid); await user.checkMinReputation(socket.uid, data.uid, 'min:rep:profile-picture'); + data.callerUid = socket.uid; return await user.uploadCroppedPicture(data); }; diff --git a/src/user/picture.js b/src/user/picture.js index 1cfda9ebef..12938a43c0 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -148,10 +148,11 @@ module.exports = function (User) { const uploadedImage = await image.uploadImage(filename, 'profile', picture); await deleteCurrentPicture(data.uid, 'uploadedpicture'); - await User.setUserFields(data.uid, { + await User.updateProfile(data.callerUid, { + uid: data.uid, uploadedpicture: uploadedImage.url, picture: uploadedImage.url, - }); + }, ['uploadedpicture', 'picture']); return uploadedImage; } finally { await file.delete(picture.path); diff --git a/test/user.js b/test/user.js index cba9bf0e02..676d4893ee 100644 --- a/test/user.js +++ b/test/user.js @@ -1156,6 +1156,7 @@ describe('User', () => { type: 'image/png', }; User.uploadCroppedPicture({ + callerUid: uid, uid: uid, file: picture, }, (err) => { @@ -1167,6 +1168,7 @@ describe('User', () => { it('should return error if profile image has no mime type', (done) => { User.uploadCroppedPicture({ + callerUid: uid, uid: uid, imageData: 'data:image/invalid;base64,R0lGODlhPQBEAPeoAJosM/', }, (err) => { @@ -1189,6 +1191,7 @@ describe('User', () => { const temp = meta.config.maximumProfileImageSize; meta.config.maximumProfileImageSize = 1; User.uploadCroppedPicture({ + callerUid: uid, uid: 1, imageData: goodImage, }, (err) => { @@ -1202,6 +1205,7 @@ describe('User', () => { it('should not allow image data with bad MIME type to be passed in', (done) => { User.uploadCroppedPicture({ + callerUid: uid, uid: 1, imageData: badImage, }, (err) => {