Преглед изворни кода

Merge branch 'feat/auditlog' of https://github.com/weseek/growi into imprv/98232-search-only-available-action-groups

Shun Miyazawa пре 3 година
родитељ
комит
9d5056020c

+ 4 - 0
packages/app/src/interfaces/activity.ts

@@ -36,6 +36,7 @@ const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
 const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
 const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
 const ACTION_COMMENT_REMOVE = 'COMMENT_REMOVE';
 const ACTION_COMMENT_REMOVE = 'COMMENT_REMOVE';
 const ACTION_ADMIN_APP_SETTINGS_UPDATE = 'ADMIN_APP_SETTING_UPDATE';
 const ACTION_ADMIN_APP_SETTINGS_UPDATE = 'ADMIN_APP_SETTING_UPDATE';
+const ACTION_ADMIN_SITE_URL_UPDATE = 'ADMIN_SITE_URL_UPDATE';
 const ACTION_ADMIN_SECURITY_SETTINGS_UPDATE = 'ADMIN_SECURITY_SETTINGS_UPDATE';
 const ACTION_ADMIN_SECURITY_SETTINGS_UPDATE = 'ADMIN_SECURITY_SETTINGS_UPDATE';
 const ACTION_ADMIN_LINE_BREAK_UPDATE = 'ADMIN_LINE_BREAK_UPDATE';
 const ACTION_ADMIN_LINE_BREAK_UPDATE = 'ADMIN_LINE_BREAK_UPDATE';
 const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
 const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
@@ -49,6 +50,7 @@ const ACTION_ADMIN_USER_GROUP_CREATE = 'ADMIN_USER_GROUP_CREATE';
 const ACTION_ADMIN_SEARCH_INDICES_NORMALIZE = 'ADMIN_SEARCH_INDICES_NORMALIZE';
 const ACTION_ADMIN_SEARCH_INDICES_NORMALIZE = 'ADMIN_SEARCH_INDICES_NORMALIZE';
 const ACTION_ADMIN_SEARCH_INDICES_REBUILD = 'ADMIN_SEARCH_INDICES_REBUILD';
 const ACTION_ADMIN_SEARCH_INDICES_REBUILD = 'ADMIN_SEARCH_INDICES_REBUILD';
 
 
+
 export const SupportedTargetModel = {
 export const SupportedTargetModel = {
   MODEL_PAGE,
   MODEL_PAGE,
 } as const;
 } as const;
@@ -87,6 +89,7 @@ export const SupportedAction = {
   ACTION_COMMENT_UPDATE,
   ACTION_COMMENT_UPDATE,
   ACTION_COMMENT_REMOVE,
   ACTION_COMMENT_REMOVE,
   ACTION_ADMIN_APP_SETTINGS_UPDATE,
   ACTION_ADMIN_APP_SETTINGS_UPDATE,
+  ACTION_ADMIN_SITE_URL_UPDATE,
   ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
   ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
@@ -146,6 +149,7 @@ export const MediumActionGroup = {
 export const LargeActionGroup = {
 export const LargeActionGroup = {
   ...MediumActionGroup,
   ...MediumActionGroup,
   ACTION_ADMIN_APP_SETTINGS_UPDATE,
   ACTION_ADMIN_APP_SETTINGS_UPDATE,
+  ACTION_ADMIN_SITE_URL_UPDATE,
   ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
   ACTION_ADMIN_SECURITY_SETTINGS_UPDATE,
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LINE_BREAK_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,

+ 4 - 1
packages/app/src/server/routes/apiv3/app-settings.js

@@ -355,7 +355,7 @@ module.exports = (crowi) => {
    *                schema:
    *                schema:
    *                  $ref: '#/components/schemas/SiteUrlSettingParams'
    *                  $ref: '#/components/schemas/SiteUrlSettingParams'
    */
    */
-  router.put('/site-url-setting', loginRequiredStrictly, adminRequired, csrf, validator.siteUrlSetting, apiV3FormValidator, async(req, res) => {
+  router.put('/site-url-setting', loginRequiredStrictly, adminRequired, csrf, addActivity, validator.siteUrlSetting, apiV3FormValidator, async(req, res) => {
 
 
     const requestSiteUrlSettingParams = {
     const requestSiteUrlSettingParams = {
       'app:siteUrl': pathUtils.removeTrailingSlash(req.body.siteUrl),
       'app:siteUrl': pathUtils.removeTrailingSlash(req.body.siteUrl),
@@ -366,6 +366,9 @@ module.exports = (crowi) => {
       const siteUrlSettingParams = {
       const siteUrlSettingParams = {
         siteUrl: crowi.configManager.getConfig('crowi', 'app:siteUrl'),
         siteUrl: crowi.configManager.getConfig('crowi', 'app:siteUrl'),
       };
       };
+
+      const parameters = { action: SupportedAction.ACTION_ADMIN_SITE_URL_UPDATE };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
       return res.apiv3({ siteUrlSettingParams });
       return res.apiv3({ siteUrlSettingParams });
     }
     }
     catch (err) {
     catch (err) {

+ 12 - 13
packages/app/src/server/service/activity.ts

@@ -62,34 +62,33 @@ class ActivityService {
     const auditLogAdditionalActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogAdditionalActions');
     const auditLogAdditionalActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogAdditionalActions');
     const auditLogExcludeActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogExcludeActions');
     const auditLogExcludeActions = this.crowi.configManager.getConfig('crowi', 'app:auditLogExcludeActions');
 
 
+    const availableActionsSet = new Set<SupportedActionType>();
+
     // Set base action group
     // Set base action group
-    const availableActions: SupportedActionType[] = [];
     switch (auditLogActionGroupSize) {
     switch (auditLogActionGroupSize) {
       case ActionGroupSize.Small:
       case ActionGroupSize.Small:
-        availableActions.push(...AllSmallGroupActions);
+        AllSmallGroupActions.forEach(action => availableActionsSet.add(action));
         break;
         break;
       case ActionGroupSize.Medium:
       case ActionGroupSize.Medium:
-        availableActions.push(...AllMediumGroupActions);
+        AllMediumGroupActions.forEach(action => availableActionsSet.add(action));
         break;
         break;
       case ActionGroupSize.Large:
       case ActionGroupSize.Large:
-        availableActions.push(...AllLargeGroupActions);
+        AllLargeGroupActions.forEach(action => availableActionsSet.add(action));
         break;
         break;
     }
     }
 
 
-    // Push additionalActions
+    // Add additionalActions
     const additionalActions = parseActionString(auditLogAdditionalActions);
     const additionalActions = parseActionString(auditLogAdditionalActions);
-    availableActions.push(...additionalActions);
+    additionalActions.forEach(action => availableActionsSet.add(action));
 
 
-    // Filter with excludeActions
+    // Delete excludeActions
     const excludeActions = parseActionString(auditLogExcludeActions);
     const excludeActions = parseActionString(auditLogExcludeActions);
-    const filteredAvailableActions = availableActions.filter(action => !excludeActions.includes(action));
+    excludeActions.forEach(action => availableActionsSet.delete(action));
 
 
-    // Push essentialActions
-    if (isIncludeEssentialActions) {
-      filteredAvailableActions.push(...AllSupportedActionToNotified);
-    }
+    // Add essentialActions
+    AllSupportedActionToNotified.forEach(action => availableActionsSet.add(action));
 
 
-    return Array.from(new Set(filteredAvailableActions));
+    return Array.from(availableActionsSet);
   }
   }
 
 
   shoudUpdateActivity = function(action: SupportedActionType): boolean {
   shoudUpdateActivity = function(action: SupportedActionType): boolean {