Procházet zdrojové kódy

Merge pull request #2690 from overleaf/ta-redirection-helper

Add RedirectionHelper

GitOrigin-RevId: 229ca78f26a9db205e23ecf91f85d6d1e926750a
Timothée Alby před 6 roky
rodič
revize
fb2e182d2e

+ 3 - 12
services/web/app/src/Features/Authentication/AuthenticationController.js

@@ -14,6 +14,7 @@ const Analytics = require('../Analytics/AnalyticsManager')
 const passport = require('passport')
 const passport = require('passport')
 const NotificationsBuilder = require('../Notifications/NotificationsBuilder')
 const NotificationsBuilder = require('../Notifications/NotificationsBuilder')
 const UrlHelper = require('../Helpers/UrlHelper')
 const UrlHelper = require('../Helpers/UrlHelper')
+const AsyncFormHelper = require('../Helpers/AsyncFormHelper')
 const SudoModeHandler = require('../SudoMode/SudoModeHandler')
 const SudoModeHandler = require('../SudoMode/SudoModeHandler')
 const _ = require('lodash')
 const _ = require('lodash')
 
 
@@ -145,13 +146,7 @@ const AuthenticationController = (module.exports = {
             )
             )
           }
           }
           AuthenticationController._clearRedirectFromSession(req)
           AuthenticationController._clearRedirectFromSession(req)
-          if (
-            _.get(req, ['headers', 'accept'], '').match(/^application\/json.*$/)
-          ) {
-            res.json({ redir })
-          } else {
-            res.redirect(redir)
-          }
+          AsyncFormHelper.redirect(req, res, redir)
         })
         })
       })
       })
     })
     })
@@ -436,11 +431,7 @@ const AuthenticationController = (module.exports = {
     )
     )
     req.session.reconfirm_email = user != null ? user.email : undefined
     req.session.reconfirm_email = user != null ? user.email : undefined
     const redir = '/user/reconfirm'
     const redir = '/user/reconfirm'
-    if (_.get(req, ['headers', 'accept'], '').match(/^application\/json.*$/)) {
-      res.json({ redir })
-    } else {
-      res.redirect(redir)
-    }
+    AsyncFormHelper.redirect(req, res, redir)
   },
   },
 
 
   _redirectToRegisterPage(req, res) {
   _redirectToRegisterPage(req, res) {

+ 15 - 0
services/web/app/src/Features/Helpers/AsyncFormHelper.js

@@ -0,0 +1,15 @@
+const _ = require('lodash')
+
+module.exports = {
+  redirect
+}
+
+// redirect the request via headers or JSON response depending on the request
+// format
+function redirect(req, res, redir) {
+  if (_.get(req, ['headers', 'accept'], '').match(/^application\/json.*$/)) {
+    res.json({ redir })
+  } else {
+    res.redirect(redir)
+  }
+}