Просмотр исходного кода

Create activity when registration is complete

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

+ 1 - 0
packages/app/src/server/routes/apiv3/index.js

@@ -97,6 +97,7 @@ module.exports = (crowi, app, isInstalled) => {
   router.get('/check-username', user.api.checkUsername);
   router.get('/check-username', user.api.checkUsername);
 
 
   router.post('/complete-registration',
   router.post('/complete-registration',
+    addActivity,
     injectUserRegistrationOrderByTokenMiddleware,
     injectUserRegistrationOrderByTokenMiddleware,
     userActivation.completeRegistrationRules(),
     userActivation.completeRegistrationRules(),
     userActivation.validateCompleteRegistration,
     userActivation.validateCompleteRegistration,

+ 5 - 0
packages/app/src/server/routes/apiv3/user-activation.ts

@@ -4,6 +4,7 @@ import { ErrorV3 } from '@growi/core';
 import { format, subSeconds } from 'date-fns';
 import { format, subSeconds } from 'date-fns';
 import { body, validationResult } from 'express-validator';
 import { body, validationResult } from 'express-validator';
 
 
+import { SupportedAction } from '~/interfaces/activity';
 import UserRegistrationOrder from '~/server/models/user-registration-order';
 import UserRegistrationOrder from '~/server/models/user-registration-order';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
@@ -64,6 +65,7 @@ async function sendEmailToAllAdmins(userData, admins, appTitle, mailService, tem
 
 
 export const completeRegistrationAction = (crowi) => {
 export const completeRegistrationAction = (crowi) => {
   const User = crowi.model('User');
   const User = crowi.model('User');
+  const activityEvent = crowi.event('activity');
   const {
   const {
     configManager,
     configManager,
     aclService,
     aclService,
@@ -127,6 +129,9 @@ export const completeRegistrationAction = (crowi) => {
           return res.apiv3Err(new ErrorV3(errorMessage, 'registration-failed'), 403);
           return res.apiv3Err(new ErrorV3(errorMessage, 'registration-failed'), 403);
         }
         }
 
 
+        const parameters = { action: SupportedAction.ACTION_USER_REGISTRATION_SUCCESS };
+        activityEvent.emit('update', res.locals.activity._id, parameters);
+
         userRegistrationOrder.revokeOneTimeToken();
         userRegistrationOrder.revokeOneTimeToken();
 
 
         if (configManager.getConfig('crowi', 'security:registrationMode') === aclService.labels.SECURITY_REGISTRATION_MODE_RESTRICTED) {
         if (configManager.getConfig('crowi', 'security:registrationMode') === aclService.labels.SECURITY_REGISTRATION_MODE_RESTRICTED) {