فهرست منبع

Merge pull request #6202 from weseek/feat/auditlog-99485

feat: Add activity when markdown setting by admin user
Shun Miyazawa 3 سال پیش
والد
کامیت
83d5965b42
2فایلهای تغییر یافته به همراه28 افزوده شده و 7 حذف شده
  1. 12 3
      packages/app/src/interfaces/activity.ts
  2. 16 4
      packages/app/src/server/routes/apiv3/markdown-setting.js

+ 12 - 3
packages/app/src/interfaces/activity.ts

@@ -72,7 +72,10 @@ const ACTION_ADMIN_AUTH_GITHUB_UPDATE = 'ADMIN_AUTH_GITHUB_UPDATE';
 const ACTION_ADMIN_AUTH_TWITTER_ENABLED = 'ADMIN_AUTH_TWITTER_ENABLED';
 const ACTION_ADMIN_AUTH_TWITTER_DISABLED = 'ADMIN_AUTH_TWITTER_DISABLED';
 const ACTION_ADMIN_AUTH_TWITTER_UPDATE = 'ADMIN_AUTH_TWITTER_UPDATE';
-const ACTION_ADMIN_LINE_BREAK_UPDATE = 'ADMIN_LINE_BREAK_UPDATE';
+const ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE = 'ADMIN_MARKDOWN_LINE_BREAK_UPDATE';
+const ACTION_ADMIN_MARKDOWN_INDENT_UPDATE = 'ADMIN_MARKDOWN_INDENT_UPDATE';
+const ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE = 'ADMIN_MARKDOWN_PRESENTATION_UPDATE';
+const ACTION_ADMIN_MARKDOWN_XSS_UPDATE = 'ADMIN_MARKDOWN_XSS_UPDATE';
 const ACTION_ADMIN_LAYOUT_UPDATE = 'ADMIN_LAYOUT_UPDATE';
 const ACTION_ADMIN_THEME_UPDATE = 'ADMIN_THEME_UPDATE';
 const ACTION_ADMIN_FUNCTION_UPDATE = 'ADMIN_FUNCTION_UPDATE';
@@ -176,7 +179,10 @@ export const SupportedAction = {
   ACTION_ADMIN_AUTH_TWITTER_ENABLED,
   ACTION_ADMIN_AUTH_TWITTER_DISABLED,
   ACTION_ADMIN_AUTH_TWITTER_UPDATE,
-  ACTION_ADMIN_LINE_BREAK_UPDATE,
+  ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
+  ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
+  ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
+  ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_THEME_UPDATE,
   ACTION_ADMIN_FUNCTION_UPDATE,
@@ -294,7 +300,10 @@ export const LargeActionGroup = {
   ACTION_ADMIN_AUTH_TWITTER_ENABLED,
   ACTION_ADMIN_AUTH_TWITTER_DISABLED,
   ACTION_ADMIN_AUTH_TWITTER_UPDATE,
-  ACTION_ADMIN_LINE_BREAK_UPDATE,
+  ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE,
+  ACTION_ADMIN_MARKDOWN_INDENT_UPDATE,
+  ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE,
+  ACTION_ADMIN_MARKDOWN_XSS_UPDATE,
   ACTION_ADMIN_LAYOUT_UPDATE,
   ACTION_ADMIN_THEME_UPDATE,
   ACTION_ADMIN_FUNCTION_UPDATE,

+ 16 - 4
packages/app/src/server/routes/apiv3/markdown-setting.js

@@ -172,7 +172,7 @@ module.exports = (crowi) => {
         isEnabledLinebreaksInComments: await crowi.configManager.getConfig('markdown', 'markdown:isEnabledLinebreaksInComments'),
       };
 
-      const parameters = { action: SupportedAction.ACTION_ADMIN_LINE_BREAK_UPDATE };
+      const parameters = { action: SupportedAction.ACTION_ADMIN_MARKDOWN_LINE_BREAK_UPDATE };
       activityEvent.emit('update', res.locals.activity._id, parameters);
 
       return res.apiv3({ lineBreaksParams });
@@ -185,7 +185,7 @@ module.exports = (crowi) => {
 
   });
 
-  router.put('/indent', loginRequiredStrictly, adminRequired, csrf, validator.indent, apiV3FormValidator, async(req, res) => {
+  router.put('/indent', loginRequiredStrictly, adminRequired, csrf, addActivity, validator.indent, apiV3FormValidator, async(req, res) => {
 
     const requestIndentParams = {
       'markdown:adminPreferredIndentSize': req.body.adminPreferredIndentSize,
@@ -198,6 +198,10 @@ module.exports = (crowi) => {
         adminPreferredIndentSize: await crowi.configManager.getConfig('markdown', 'markdown:adminPreferredIndentSize'),
         isIndentSizeForced: await crowi.configManager.getConfig('markdown', 'markdown:isIndentSizeForced'),
       };
+
+      const parameters = { action: SupportedAction.ACTION_ADMIN_MARKDOWN_INDENT_UPDATE };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
+
       return res.apiv3({ indentParams });
     }
     catch (err) {
@@ -231,7 +235,7 @@ module.exports = (crowi) => {
    *                schema:
    *                  $ref: '#/components/schemas/PresentationParams'
    */
-  router.put('/presentation', loginRequiredStrictly, adminRequired, csrf, validator.presentationSetting, apiV3FormValidator, async(req, res) => {
+  router.put('/presentation', loginRequiredStrictly, adminRequired, csrf, addActivity, validator.presentationSetting, apiV3FormValidator, async(req, res) => {
     if (req.body.pageBreakSeparator === 3 && req.body.pageBreakCustomSeparator === '') {
       return res.apiv3Err(new ErrorV3('customRegularExpression is required'));
     }
@@ -247,6 +251,10 @@ module.exports = (crowi) => {
         pageBreakSeparator: await crowi.configManager.getConfig('markdown', 'markdown:presentation:pageBreakSeparator'),
         pageBreakCustomSeparator: await crowi.configManager.getConfig('markdown', 'markdown:presentation:pageBreakCustomSeparator') || '',
       };
+
+      const parameters = { action: SupportedAction.ACTION_ADMIN_MARKDOWN_PRESENTATION_UPDATE };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
+
       return res.apiv3({ presentationParams });
     }
     catch (err) {
@@ -280,7 +288,7 @@ module.exports = (crowi) => {
    *                schema:
    *                  $ref: '#/components/schemas/XssParams'
    */
-  router.put('/xss', loginRequiredStrictly, adminRequired, csrf, validator.xssSetting, apiV3FormValidator, async(req, res) => {
+  router.put('/xss', loginRequiredStrictly, adminRequired, csrf, addActivity, validator.xssSetting, apiV3FormValidator, async(req, res) => {
     if (req.body.isEnabledXss && req.body.xssOption == null) {
       return res.apiv3Err(new ErrorV3('xss option is required'));
     }
@@ -300,6 +308,10 @@ module.exports = (crowi) => {
         tagWhiteList: await crowi.configManager.getConfig('markdown', 'markdown:xss:tagWhiteList'),
         attrWhiteList: await crowi.configManager.getConfig('markdown', 'markdown:xss:attrWhiteList'),
       };
+
+      const parameters = { action: SupportedAction.ACTION_ADMIN_MARKDOWN_XSS_UPDATE };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
+
       return res.apiv3({ xssParams });
     }
     catch (err) {