Taichi Masuyama 4 лет назад
Родитель
Сommit
2f274dce23

+ 18 - 0
packages/app/src/server/models/user-group.js

@@ -97,6 +97,24 @@ class UserGroup {
     };
   }
 
+  // Check if registerable
+  static isRegisterableName(name) {
+    const query = { name };
+
+    const childUserGroups = await this.find({ parent: { $in: parentIds } });
+
+    let grandChildUserGroups = null;
+    if (includeGrandChildren) {
+      const childUserGroupIds = childUserGroups.map(group => group._id);
+      grandChildUserGroups = await this.find({ parent: { $in: childUserGroupIds } });
+    }
+
+    return {
+      childUserGroups,
+      grandChildUserGroups,
+    };
+  }
+
   // Delete completely
   static async removeCompletelyById(deleteGroupId, action, transferToUserGroupId, user) {
     const UserGroupRelation = mongoose.model('UserGroupRelation');

+ 2 - 2
packages/app/src/server/routes/apiv3/user-group-relation.js

@@ -53,11 +53,11 @@ module.exports = (crowi) => {
     const { query } = req;
 
     try {
-      const relations = await UserGroupRelation.findWithUserByGroupIds(query.groupIds);
+      const relations = await UserGroupRelation.find({ relatedGroup: { $in: query.groupIds } }).populate('relatedUser');
 
       let relationsOfChildGroups = null;
       if (Array.isArray(query.childGroupIds)) {
-        const _relationsOfChildGroups = await UserGroupRelation.findWithUserByGroupIds(query.childGroupIds);
+        const _relationsOfChildGroups = await UserGroupRelation.find({ relatedGroup: { $in: query.childGroupIds } }).populate('relatedUser');
         relationsOfChildGroups = _relationsOfChildGroups.map(relation => serializeUserGroupRelationSecurely(relation)); // serialize
       }