yusuketk 5 лет назад
Родитель
Сommit
d03176491e
2 измененных файлов с 12 добавлено и 9 удалено
  1. 10 7
      src/server/models/user.js
  2. 2 2
      src/server/service/passport.js

+ 10 - 7
src/server/models/user.js

@@ -189,7 +189,7 @@ module.exports = function(crowi) {
 
 
   userSchema.methods.updateIsGravatarEnabled = async function(isGravatarEnabled) {
   userSchema.methods.updateIsGravatarEnabled = async function(isGravatarEnabled) {
     this.isGravatarEnabled = isGravatarEnabled;
     this.isGravatarEnabled = isGravatarEnabled;
-    this.updateImageUrlCached();
+    this.imageUrlCached = this.generateImageUrlCached();
     const userData = await this.save();
     const userData = await this.save();
     return userData;
     return userData;
   };
   };
@@ -225,7 +225,7 @@ module.exports = function(crowi) {
 
 
   userSchema.methods.updateImage = async function(attachment) {
   userSchema.methods.updateImage = async function(attachment) {
     this.imageAttachment = attachment;
     this.imageAttachment = attachment;
-    this.updateImageUrlCached();
+    this.imageUrlCached = this.generateImageUrlCached();
     return this.save();
     return this.save();
   };
   };
 
 
@@ -241,15 +241,16 @@ module.exports = function(crowi) {
     }
     }
 
 
     this.imageAttachment = undefined;
     this.imageAttachment = undefined;
-    this.updateImageUrlCached();
+    this.imageUrlCached = this.generateImageUrlCached();
     return this.save();
     return this.save();
   };
   };
 
 
-  userSchema.methods.updateImageUrlCached = function() {
-    this.imageUrlCached = this.generateImageUrlCached();
+  userSchema.methods.updateImageUrlCached = async function() {
+    this.imageUrlCached = await this.generateImageUrlCached();
+    return this.save();
   };
   };
 
 
-  userSchema.methods.generateImageUrlCached = function() {
+  userSchema.methods.generateImageUrlCached = async function() {
     if (this.isGravatarEnabled) {
     if (this.isGravatarEnabled) {
       const email = this.email || '';
       const email = this.email || '';
       const hash = md5(email.trim().toLowerCase());
       const hash = md5(email.trim().toLowerCase());
@@ -259,7 +260,9 @@ module.exports = function(crowi) {
       return this.image;
       return this.image;
     }
     }
     if (this.imageAttachment) {
     if (this.imageAttachment) {
-      return this.imageAttachment.filePathProxied;
+      const Attachment = crowi.model('Attachment');
+      const imageAttachment = await Attachment.findById(this.imageAttachment);
+      return imageAttachment.filePathProxied;
     }
     }
     return '/images/icons/user.svg';
     return '/images/icons/user.svg';
   };
   };

+ 2 - 2
src/server/service/passport.js

@@ -854,8 +854,8 @@ class PassportService {
         if (user == null) {
         if (user == null) {
           throw new Error('user not found');
           throw new Error('user not found');
         }
         }
-        if (!user.ImageUrlCached) {
-          user.updateImageUrlCached();
+        if (!user.imageUrlCached) {
+          await user.updateImageUrlCached();
         }
         }
         done(null, user);
         done(null, user);
       }
       }