itizawa 4 лет назад
Родитель
Сommit
ee85f25086

+ 10 - 0
src/server/models/serializers/user-serializer.js

@@ -1,3 +1,6 @@
+const mongoose = require('mongoose');
+
+
 function omitInsecureAttributes(user) {
   // omit password
   delete user.password;
@@ -12,6 +15,13 @@ function omitInsecureAttributes(user) {
 }
 
 function serializeUserSecurely(user) {
+  const User = mongoose.model('User');
+
+  // return when it is not a user object
+  if (user == null || !(user instanceof User)) {
+    return user;
+  }
+
   let serialized = user;
 
   // invoke toObject if page is a model instance

+ 2 - 7
src/server/routes/apiv3/user-group.js

@@ -289,10 +289,7 @@ module.exports = (crowi) => {
       const userGroupRelations = await UserGroupRelation.findAllRelationForUserGroup(userGroup);
 
       const users = userGroupRelations.map((userGroupRelation) => {
-        if (userGroupRelation.relatedUser != null && userGroupRelation.relatedUser instanceof User) {
-          return serializeUserSecurely(userGroupRelation.relatedUser);
-        }
-        return userGroupRelation.relatedUser;
+        return serializeUserSecurely(userGroupRelation.relatedUser);
       });
 
       return res.apiv3({ users });
@@ -597,9 +594,7 @@ module.exports = (crowi) => {
       const current = offset / limit + 1;
 
       const pages = docs.map((doc) => {
-        if (doc.lastUpdateUser != null && doc.lastUpdateUser instanceof User) {
-          doc.lastUpdateUser = serializeUserSecurely(doc.lastUpdateUser);
-        }
+        doc.lastUpdateUser = serializeUserSecurely(doc.lastUpdateUser);
         return doc;
       });