فهرست منبع

fix redirect invited

jam411 3 سال پیش
والد
کامیت
737d69c37b
2فایلهای تغییر یافته به همراه19 افزوده شده و 12 حذف شده
  1. 7 0
      packages/app/src/server/routes/login-passport.js
  2. 12 12
      packages/app/src/server/routes/login.js

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

@@ -91,6 +91,9 @@ module.exports = function(crowi, app) {
    * @param {*} res
    */
   const loginSuccessHandler = async(req, res, user, action) => {
+
+    const User = crowi.model('User');
+
     // update lastLoginAt
     user.updateLastLoginAt(new Date(), (err, userData) => {
       if (err) {
@@ -114,6 +117,10 @@ module.exports = function(crowi, app) {
     };
     await crowi.activityService.createActivity(parameters);
 
+    if (req.user.status === User.STATUS_INVITED) {
+      return res.apiv3({ redirectTo: '/invited' });
+    }
+
     return res.apiv3({ redirectTo });
   };
 

+ 12 - 12
packages/app/src/server/routes/login.js

@@ -86,18 +86,18 @@ module.exports = function(crowi, app) {
 
   actions.preLogin = function(req, res, next) {
     // user has already logged in
-    // const { user } = req;
-    // if (user != null && user.status === User.STATUS_ACTIVE) {
-    //   const { redirectTo } = req.session;
-    //   // remove session.redirectTo
-    //   delete req.session.redirectTo;
-    //   return res.safeRedirect(redirectTo);
-    // }
-
-    // // set referer to 'redirectTo'
-    // if (req.session.redirectTo == null && req.headers.referer != null) {
-    //   req.session.redirectTo = req.headers.referer;
-    // }
+    const { user } = req;
+    if (user != null && user.status === User.STATUS_ACTIVE) {
+      const { redirectTo } = req.session;
+      // remove session.redirectTo
+      delete req.session.redirectTo;
+      return res.safeRedirect(redirectTo);
+    }
+
+    // set referer to 'redirectTo'
+    if (req.session.redirectTo == null && req.headers.referer != null) {
+      req.session.redirectTo = req.headers.referer;
+    }
 
     next();
   };