瀏覽代碼

update invited.ts

jam411 3 年之前
父節點
當前提交
1efde3454d

+ 3 - 2
packages/app/src/components/InvitedForm.tsx

@@ -39,8 +39,9 @@ export const InvitedForm = (props: InvitedFormProps): JSX.Element => {
     };
 
     try {
-      await apiv3Post('/invited', { invitedForm });
-      router.push('/');
+      const res = await apiv3Post('/invited', { invitedForm });
+      const { redirectTo } = res.data;
+      router.push(redirectTo);
     }
     catch (err) {
       // TODO: show errors

+ 6 - 3
packages/app/src/server/routes/apiv3/invited.ts

@@ -2,10 +2,13 @@ import express, { Request, Router } from 'express';
 import { body, validationResult } from 'express-validator';
 
 import Crowi from '../../crowi';
+
 import { ApiV3Response } from './interfaces/apiv3-response';
 
-module.exports = (crowi: Crowi, app: any): Router => {
-  const applicationInstalled = require('../middlewares/application-installed')(crowi);
+type InvitedFormRequest = Request & { form: any, user: any };
+
+module.exports = (crowi: Crowi): Router => {
+  const applicationInstalled = require('../../middlewares/application-installed')(crowi);
   const debug = require('debug')('growi:routes:login');
   const User = crowi.model('User');
   const router = express.Router();
@@ -52,7 +55,7 @@ module.exports = (crowi: Crowi, app: any): Router => {
     return next();
   };
 
-  router.post('/invited', applicationInstalled, invitedRules(), invitedValidation, async(req: any, res: ApiV3Response) => {
+  router.post('/invited', applicationInstalled, invitedRules(), invitedValidation, async(req: InvitedFormRequest, res: ApiV3Response) => {
     if (!req.user) {
       return res.redirect('/login');
     }

+ 0 - 41
packages/app/src/server/routes/login.js

@@ -169,46 +169,5 @@ module.exports = function(crowi, app) {
     });
   };
 
-  actions.invited = async function(req, res) {
-    if (!req.user) {
-      return res.redirect('/login');
-    }
-
-    if (req.method === 'POST' && req.form.isValid) {
-      const user = req.user;
-      const invitedForm = req.form.invitedForm || {};
-      const username = invitedForm.username;
-      const name = invitedForm.name;
-      const password = invitedForm.password;
-
-      // check user upper limit
-      const isUserCountExceedsUpperLimit = await User.isUserCountExceedsUpperLimit();
-      if (isUserCountExceedsUpperLimit) {
-        req.flash('warningMessage', req.t('message.can_not_activate_maximum_number_of_users'));
-        return res.redirect('/invited');
-      }
-
-      const creatable = await User.isRegisterableUsername(username);
-      if (creatable) {
-        try {
-          await user.activateInvitedUser(username, name, password);
-          return res.redirect('/');
-        }
-        catch (err) {
-          req.flash('warningMessage', req.t('message.failed_to_activate'));
-          return res.render('invited');
-        }
-      }
-      else {
-        req.flash('warningMessage', req.t('message.unable_to_use_this_user'));
-        debug('username', username);
-        return res.render('invited');
-      }
-    }
-    else {
-      return res.render('invited');
-    }
-  };
-
   return actions;
 };