X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fframework%2Fcore%2Fmodules%2Froutes%2Fnavigation.js;h=1d7b9011d74ea77af98ac463a83d05f45f44d17a;hp=afffb20b8418074c64f683870954c22a3451c2ba;hb=fd7cbe8c26487430f96511d5c3277d1c1f641e74;hpb=695945f7ea689aa4b5753a87b1134b3efd7c686e diff --git a/skyquake/framework/core/modules/routes/navigation.js b/skyquake/framework/core/modules/routes/navigation.js index afffb20b8..1d7b9011d 100644 --- a/skyquake/framework/core/modules/routes/navigation.js +++ b/skyquake/framework/core/modules/routes/navigation.js @@ -41,13 +41,28 @@ Router.get('/login.html', cors(), function(req, res) { res.render('login.html'); res.end(); }); - -Router.get('/', cors(), function(req, res) { +//Should have a way of adding excluded routes to this via plugin registry, instead of hard coding +Router.use(/^(?!.*(session|composer\/upload|composer\/update)).*/, function(req, res, next) { var api_server = req.query['api_server'] || (req.protocol + '://' + configurationAPI.globalConfiguration.get().api_server); if (req.session && req.session.loggedIn) { - console.log('Logged in. Redirect to launchpad'); - if(req.params.referer) { - res.redirect(req.params.referer); + next(); + } else { + console.log('Redirect to login.html'); + res.redirect('/login.html?api_server=' + api_server + '&upload_server=' + req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname) + '&referer=' + encodeURIComponent(req.headers.referer)); + } +}); + +Router.use(function(req, res, next) { + var api_server = req.query['api_server'] || (req.protocol + '://' + configurationAPI.globalConfiguration.get().api_server); + if (req.session.redirect) { + req.session.redirect = false; + req.session.save(function(err) { + if (err) { + console.log('Error saving session to store', err); + } + }); + if(req.query.referer && (req.query.referer != "undefined")) { + res.redirect(decodeURIComponent(req.query.referer)); } else { if(req.session.isLCM) { res.redirect('/launchpad/?api_server=' + api_server + '&upload_server=' + req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname)); @@ -56,8 +71,7 @@ Router.get('/', cors(), function(req, res) { } } } else { - console.log('Redirect to login.html'); - res.redirect('login.html?api_server=' + api_server + '&upload_server=' + req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname) + '&referer=' + req.headers.referer); + next(); } });