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

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

@@ -47,6 +47,7 @@ const ACTION_SHARE_LINK_DELETE_BY_PAGE = 'SHARE_LINK_DELETE_BY_PAGE';
 const ACTION_SHARE_LINK_ALL_DELETE = 'SHARE_LINK_ALL_DELETE';
 const ACTION_ATTACHMENT_ADD = 'ATTACHMENT_ADD';
 const ACTION_ATTACHMENT_REMOVE = 'ATTACHMENT_REMOVE';
+const ACTION_ATTACHMENT_DOWNLOAD = 'ACTION_ATTACHMENT_DOWNLOAD';
 const ACTION_ADMIN_APP_SETTINGS_UPDATE = 'ADMIN_APP_SETTING_UPDATE';
 const ACTION_ADMIN_SITE_URL_UPDATE = 'ADMIN_SITE_URL_UPDATE';
 const ACTION_ADMIN_MAIL_SMTP_UPDATE = 'ADMIN_MAIL_SMTP_UPDATE';
@@ -122,6 +123,7 @@ export const SupportedAction = {
   ACTION_SHARE_LINK_ALL_DELETE,
   ACTION_ATTACHMENT_ADD,
   ACTION_ATTACHMENT_REMOVE,
+  ACTION_ATTACHMENT_DOWNLOAD,
   ACTION_ADMIN_APP_SETTINGS_UPDATE,
   ACTION_ADMIN_SITE_URL_UPDATE,
   ACTION_ADMIN_MAIL_SMTP_UPDATE,
@@ -211,6 +213,7 @@ export const MediumActionGroup = {
   ACTION_SHARE_LINK_DELETE_BY_PAGE,
   ACTION_ATTACHMENT_ADD,
   ACTION_ATTACHMENT_REMOVE,
+  ACTION_ATTACHMENT_DOWNLOAD,
 } as const;
 
 // MediumActionGroup + All Actions by Admin Users - PAGE_VIEW

+ 11 - 0
packages/app/src/server/routes/attachment.js

@@ -218,6 +218,17 @@ module.exports = function(crowi, app) {
       return res.json(ApiResponse.error(e.message));
     }
 
+    const parameters = {
+      ip:  req.ip,
+      endpoint: req.originalUrl,
+      action: SupportedAction.ACTION_ATTACHMENT_DOWNLOAD,
+      user: req.user?._id,
+      snapshot: {
+        username: req.user?.username,
+      },
+    };
+    await crowi.activityService.createActivity(SupportedAction.ACTION_ATTACHMENT_DOWNLOAD, parameters);
+
     return fileStream.pipe(res);
   }