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

Merge pull request #6009 from weseek/feat/Generate-Activity-When-Registration

feat: generate activity when registration
Shun Miyazawa 3 лет назад
Родитель
Сommit
acc1896933

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

@@ -10,6 +10,7 @@ const ACTION_UNSETTLED = 'UNSETTLED';
 const ACTION_LOGIN_SUCCESS = 'LOGIN_SUCCESS';
 const ACTION_LOGIN_FAILURE = 'LOGIN_FAILURE';
 const ACTION_LOGOUT = 'LOGOUT';
+const ACTION_REGISTRATION_SUCCESS = 'REGISTRATION_SUCCESS';
 const ACTION_PAGE_LIKE = 'PAGE_LIKE';
 const ACTION_PAGE_UNLIKE = 'PAGE_UNLIKE';
 const ACTION_PAGE_BOOKMARK = 'PAGE_BOOKMARK';
@@ -38,6 +39,7 @@ export const SUPPORTED_ACTION_TYPE = {
   ACTION_LOGIN_SUCCESS,
   ACTION_LOGIN_FAILURE,
   ACTION_LOGOUT,
+  ACTION_REGISTRATION_SUCCESS,
   ACTION_UNSETTLED,
   ACTION_PAGE_LIKE,
   ACTION_PAGE_UNLIKE,

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

@@ -81,7 +81,7 @@ module.exports = function(crowi, app) {
   app.post('/login/activateInvited'   , apiLimiter , applicationInstalled, loginFormValidator.inviteRules(), loginFormValidator.inviteValidation, csrf, login.invited);
   app.post('/login'                   , apiLimiter , applicationInstalled, loginFormValidator.loginRules(), loginFormValidator.loginValidation, csrf, addActivity, loginPassport.loginWithLocal, loginPassport.loginWithLdap, loginPassport.loginFailure);
 
-  app.post('/register'                , apiLimiter , applicationInstalled, registerFormValidator.registerRules(), registerFormValidator.registerValidation, csrf, login.register);
+  app.post('/register'                , apiLimiter , applicationInstalled, registerFormValidator.registerRules(), registerFormValidator.registerValidation, csrf, addActivity, login.register);
   app.get('/register'                 , applicationInstalled, login.preLogin, login.register);
 
   app.get('/admin'                    , applicationInstalled, loginRequiredStrictly , adminRequired , admin.index);

+ 6 - 1
packages/app/src/server/routes/login.js

@@ -1,5 +1,5 @@
+import { SUPPORTED_ACTION_TYPE } from '~/interfaces/activity';
 import loggerFactory from '~/utils/logger';
-
 // disable all of linting
 // because this file is a deprecated legacy of Crowi
 
@@ -11,6 +11,7 @@ module.exports = function(crowi, app) {
   const {
     configManager, appService, aclService, mailService,
   } = crowi;
+  const activityEvent = crowi.event('activity');
 
   const actions = {};
 
@@ -38,6 +39,10 @@ module.exports = function(crowi, app) {
       const { redirectTo } = req.session;
       // remove session.redirectTo
       delete req.session.redirectTo;
+
+      const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_REGISTRATION_SUCCESS };
+      activityEvent.emit('update', res.locals.activity._id, parameters);
+
       return res.safeRedirect(redirectTo);
     });
   };