2
0
Yuki Takei 11 сар өмнө
parent
commit
343b8008b2

+ 15 - 20
apps/app/src/server/routes/apiv3/users.js

@@ -134,15 +134,15 @@ module.exports = (crowi) => {
   };
   };
 
 
   validator.statusList = [
   validator.statusList = [
-    query('selectedStatusList').if(value => value != null).custom((value, { req }) => {
-
-      const { user } = req;
-
-      if (user != null && user.admin) {
-        return value;
-      }
-      throw new Error('the param \'selectedStatusList\' is not allowed to use by the users except administrators');
-    }),
+    query('selectedStatusList').if(value => value != null).isArray().withMessage('selectedStatusList must be an array')
+      .custom((value, { req }) => {
+        const { user } = req;
+        if (user != null && user.admin) {
+          return value;
+        }
+        throw new Error('the param \'selectedStatusList\' is not allowed to use by the users except administrators');
+      }),
+    query('forceIncludeAttributes').if(value => value != null).isArray().withMessage('forceIncludeAttributes must be an array'),
     // validate sortOrder : asc or desc
     // validate sortOrder : asc or desc
     query('sortOrder').isIn(['asc', 'desc']),
     query('sortOrder').isIn(['asc', 'desc']),
     // validate sort : what column you will sort
     // validate sort : what column you will sort
@@ -290,18 +290,13 @@ module.exports = (crowi) => {
 
 
     const page = parseInt(req.query.page) || 1;
     const page = parseInt(req.query.page) || 1;
 
 
-    // forceIncludeAttributes is expected to be an array by express-validator
-    if (req.query.forceIncludeAttributes != null && !Array.isArray(req.query.forceIncludeAttributes)) {
-      return res.apiv3Err(new ErrorV3('forceIncludeAttributes is not an array'), 400);
-    }
-    // selectedStatusList is expected to be an array by express-validator
-    if (req.query.selectedStatusList != null && !Array.isArray(req.query.selectedStatusList)) {
-      return res.apiv3Err(new ErrorV3('selectedStatusList is not an array'), 400);
-    }
-
     // status
     // status
-    const forceIncludeAttributes = req.query.forceIncludeAttributes ?? [];
-    const selectedStatusList = req.query.selectedStatusList ?? ['active'];
+    const forceIncludeAttributes = Array.isArray(req.query.forceIncludeAttributes)
+      ? req.query.forceIncludeAttributes
+      : [];
+    const selectedStatusList = Array.isArray(req.query.selectedStatusList)
+      ? req.query.selectedStatusList
+      : ['active'];
 
 
     const statusNoList = (selectedStatusList.includes('all')) ? Object.values(statusNo) : selectedStatusList.map(element => statusNo[element]);
     const statusNoList = (selectedStatusList.includes('all')) ? Object.values(statusNo) : selectedStatusList.map(element => statusNo[element]);