Shun Miyazawa 3 лет назад
Родитель
Сommit
35155e1618

+ 3 - 5
packages/app/src/server/routes/apiv3/activity.ts

@@ -3,7 +3,6 @@ import express, { Request, Router } from 'express';
 import rateLimit from 'express-rate-limit';
 import { query } from 'express-validator';
 
-import { AllSupportedAction } from '~/interfaces/activity';
 import Activity from '~/server/models/activity';
 import loggerFactory from '~/utils/logger';
 
@@ -55,10 +54,9 @@ module.exports = (crowi: Crowi): Router => {
       }
 
       // add action to query
-      const canContainActionFilterToQuery = parsedSearchFilter.actions.every(a => AllSupportedAction.includes(a));
-      if (canContainActionFilterToQuery) {
-        Object.assign(query, { action: parsedSearchFilter.actions });
-      }
+      const availableActions = crowi.activityService.getAvailableActions(false);
+      const displayableActions = parsedSearchFilter.actions.filter(action => availableActions.includes(action));
+      Object.assign(query, { action: displayableActions });
 
       // add date to query
       const startDate = parseISO(parsedSearchFilter.dates.startDate);

+ 4 - 2
packages/app/src/server/service/activity.ts

@@ -57,7 +57,7 @@ class ActivityService {
     });
   }
 
-  getAvailableActions = function(): SupportedActionType[] {
+  getAvailableActions = function(isIncludeEssentialActions = true): SupportedActionType[] {
     const auditLogActionGroupSize = this.crowi.configManager.getConfig('crowi', 'app:auditLogActionGroupSize') || ActionGroupSize.Small;
     const auditLogAdditionalActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogAdditionalActions');
     const auditLogExcludeActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogExcludeActions');
@@ -85,7 +85,9 @@ class ActivityService {
     const filteredAvailableActions = availableActions.filter(action => !excludeActions.includes(action));
 
     // Push essentialActions
-    filteredAvailableActions.push(...AllSupportedActionToNotified);
+    if (isIncludeEssentialActions) {
+      filteredAvailableActions.push(...AllSupportedActionToNotified);
+    }
 
     return Array.from(new Set(filteredAvailableActions));
   }