kaori 3 лет назад
Родитель
Сommit
a8cac592a8
2 измененных файлов с 12 добавлено и 3 удалено
  1. 11 2
      packages/app/src/components/LoginForm.tsx
  2. 1 1
      packages/app/src/server/routes/login-passport.js

+ 11 - 2
packages/app/src/components/LoginForm.tsx

@@ -2,6 +2,7 @@ import React, {
   useState, useEffect, useCallback,
   useState, useEffect, useCallback,
 } from 'react';
 } from 'react';
 
 
+import { USER_STATUS } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { useRouter } from 'next/router';
 import { useRouter } from 'next/router';
 import ReactCardFlip from 'react-card-flip';
 import ReactCardFlip from 'react-card-flip';
@@ -90,8 +91,16 @@ export const LoginForm = (props: LoginFormProps): JSX.Element => {
 
 
     try {
     try {
       const res = await apiv3Post('/login', { loginForm });
       const res = await apiv3Post('/login', { loginForm });
-      const { redirectTo } = res.data;
-      router.push(redirectTo ?? '/');
+      const { redirectTo, userStatus } = res.data;
+
+      if (redirectTo != null) {
+        router.push(redirectTo);
+      }
+
+      if (userStatus === USER_STATUS.REGISTERED) {
+        window.location.href = 'login/error/registered';
+      }
+      router.push('/');
     }
     }
     catch (err) {
     catch (err) {
       const errs = toArrayIfNot(err);
       const errs = toArrayIfNot(err);

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

@@ -130,7 +130,7 @@ module.exports = function(crowi, app) {
     // remove session.redirectTo
     // remove session.redirectTo
     delete req.session.redirectTo;
     delete req.session.redirectTo;
 
 
-    return res.apiv3({ redirectTo });
+    return res.apiv3({ redirectTo, userStatus: req.user.status });
   };
   };
 
 
   const cannotLoginErrorHadnler = (req, res, next) => {
   const cannotLoginErrorHadnler = (req, res, next) => {