Przeglądaj źródła

Merge pull request #6093 from weseek/feat/98340

feat: Create activity when user is invited
Shun Miyazawa 3 lat temu
rodzic
commit
e8c029c9a2

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

@@ -44,6 +44,7 @@ const ACTION_ADMIN_ARCHIVE_DATA_CREATE = 'ADMIN_ARCHIVE_DATA_CREATE';
 const ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD = 'ADMIN_USER_NOTIFICATION_SETTINGS_ADD';
 const ACTION_ADMIN_SLACK_WORKSPACE_CREATE = 'ADMIN_SLACK_WORKSPACE_CREATE';
 const ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE = 'ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE';
+const ACTION_ADMIN_USERS_INVITE = 'ADMIN_USERS_INVITE';
 
 export const SupportedTargetModel = {
   MODEL_PAGE,
@@ -91,6 +92,7 @@ export const SupportedAction = {
   ACTION_ADMIN_USER_NOTIFICATION_SETTINGS_ADD,
   ACTION_ADMIN_SLACK_WORKSPACE_CREATE,
   ACTION_ADMIN_SLACK_CONFIGURATION_SETTING_UPDATE,
+  ACTION_ADMIN_USERS_INVITE,
 } as const;
 
 export const SupportedActionToNotified = {

+ 10 - 1
packages/app/src/server/routes/apiv3/users.js

@@ -1,8 +1,11 @@
+import { SupportedAction } from '~/interfaces/activity';
 import Activity from '~/server/models/activity';
 import loggerFactory from '~/utils/logger';
 
+import { generateAddActivityMiddleware } from '../../middlewares/add-activity';
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
 
+
 const logger = loggerFactory('growi:routes:apiv3:user-group');
 
 const express = require('express');
@@ -77,6 +80,9 @@ module.exports = (crowi) => {
   const loginRequiredStrictly = require('../../middlewares/login-required')(crowi);
   const adminRequired = require('../../middlewares/admin-required')(crowi);
   const csrf = require('../../middlewares/csrf')(crowi);
+  const addActivity = generateAddActivityMiddleware(crowi);
+
+  const activityEvent = crowi.event('activity');
 
   const {
     User,
@@ -400,7 +406,7 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: Users email that failed to create or send email
    */
-  router.post('/invite', loginRequiredStrictly, adminRequired, csrf, validator.inviteEmail, apiV3FormValidator, async(req, res) => {
+  router.post('/invite', loginRequiredStrictly, adminRequired, csrf, addActivity, validator.inviteEmail, apiV3FormValidator, async(req, res) => {
 
     // Delete duplicate email addresses
     const emailList = Array.from(new Set(req.body.shapedEmailList));
@@ -420,6 +426,9 @@ module.exports = (crowi) => {
       }
     }
 
+    const parameters = { action: SupportedAction.ACTION_ADMIN_USERS_INVITE };
+    activityEvent.emit('update', res.locals.activity._id, parameters);
+
     return res.apiv3({
       createdUserList: createUser.createdUserList,
       existingEmailList: createUser.existingEmailList,