فهرست منبع

imprv findUserByUsernameRegex

Shun Miyazawa 3 سال پیش
والد
کامیت
b36d6e0ddb
2فایلهای تغییر یافته به همراه5 افزوده شده و 10 حذف شده
  1. 2 6
      packages/app/src/server/models/user.js
  2. 3 4
      packages/app/src/server/routes/apiv3/users.js

+ 2 - 6
packages/app/src/server/models/user.js

@@ -715,12 +715,8 @@ module.exports = function(crowi) {
     return users;
   };
 
-  userSchema.statics.findUserByUsernameRegex = async function(username, limit, additionalQuery = undefined) {
-    const result = this.find({ username: { $regex: username, $options: 'i' } });
-    if (additionalQuery != null) {
-      result.and(additionalQuery);
-    }
-    return result.limit(limit);
+  userSchema.statics.findUserByUsernameRegex = async function(username, limit, status) {
+    return this.find({ username: { $regex: username, $options: 'i' }, status: { $in: status } }).limit(limit);
   };
 
   class UserUpperLimitException {

+ 3 - 4
packages/app/src/server/routes/apiv3/users.js

@@ -948,15 +948,14 @@ module.exports = (crowi) => {
       const data = {};
 
       if (options.isIncludeActiveUsernames) {
-        const additionalQuery = { status: User.STATUS_ACTIVE };
-        const activeUsers = await User.findUserByUsernameRegex(q, limit, additionalQuery);
+        const activeUsers = await User.findUserByUsernameRegex(q, limit, [User.STATUS_ACTIVE]);
         const activeUsernames = activeUsers.map(user => user.username);
         Object.assign(data, { activeUsernames });
       }
 
       if (options.isIncludeInactiveUsernames) {
-        const additionalQuery = { status: { $nin: [User.STATUS_ACTIVE, User.STATUS_DELETED] } };
-        const inactiveUsers = await User.findUserByUsernameRegex(q, limit, additionalQuery);
+        const inactiveUserStates = [User.STATUS_REGISTERED, User.STATUS_SUSPENDED, User.STATUS_DELETED, User.STATUS_INVITED];
+        const inactiveUsers = await User.findUserByUsernameRegex(q, limit, inactiveUserStates);
         const inactiveUsernames = inactiveUsers.map(user => user.username);
         Object.assign(data, { inactiveUsernames });
       }