itizawa 6 лет назад
Родитель
Сommit
cbeac1d1af
2 измененных файлов с 14 добавлено и 4 удалено
  1. 6 2
      src/server/models/user-group-relation.js
  2. 8 2
      src/server/routes/apiv3/user-group.js

+ 6 - 2
src/server/models/user-group-relation.js

@@ -194,7 +194,7 @@ class UserGroupRelation {
    * @returns {Promise<User>}
    * @memberof UserGroupRelation
    */
-  static findUserByNotRelatedGroup(userGroup) {
+  static findUserByNotRelatedGroup(userGroup, queryOptions) {
     const User = UserGroupRelation.crowi.model('User');
 
     return this.findAllRelationForUserGroup(userGroup)
@@ -202,7 +202,11 @@ class UserGroupRelation {
         const relatedUserIds = relations.map((relation) => {
           return relation.relatedUser.id;
         });
-        const query = { _id: { $nin: relatedUserIds }, status: User.STATUS_ACTIVE };
+        const query = {
+          _id: { $nin: relatedUserIds },
+          status: User.STATUS_ACTIVE,
+          username: `/${queryOptions.searchWord}/`,
+        };
 
         debug('findUserByNotRelatedGroup ', query);
         return User.find(query).exec();

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

@@ -321,11 +321,17 @@ module.exports = (crowi) => {
   // TODO rewrite swagger
   router.get('/:id/unrelated-users', loginRequiredStrictly, adminRequired, async(req, res) => {
     const { id } = req.params;
-    const { searchWord } = req.query;
+    const {
+      searchWord, isForwardMatch, isAlsoNameSearched, isAlsoMailSearched,
+    } = req.query;
+
+    const queryOptions = {
+      searchWord, isForwardMatch, isAlsoNameSearched, isAlsoMailSearched,
+    };
 
     try {
       const userGroup = await UserGroup.findById(id);
-      const users = await UserGroupRelation.findUserByNotRelatedGroup(userGroup, searchWord);
+      const users = await UserGroupRelation.findUserByNotRelatedGroup(userGroup, queryOptions);
 
       return res.apiv3({ users });
     }