X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=skyquake%2Fframework%2Fcore%2Fmodules%2Froutes%2Fnavigation.js;h=3f460e6eef5293b94534daa81bad76990ec08b7f;hb=407555cd9dac9e0dd9889da18082ae275a0a44fd;hp=82c7ec58023668875ce1537ec851cc2d86fd5cac;hpb=e29efc315df33d546237e270470916e26df391d6;p=osm%2FUI.git diff --git a/skyquake/framework/core/modules/routes/navigation.js b/skyquake/framework/core/modules/routes/navigation.js index 82c7ec580..3f460e6ee 100644 --- a/skyquake/framework/core/modules/routes/navigation.js +++ b/skyquake/framework/core/modules/routes/navigation.js @@ -1,6 +1,6 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -37,8 +37,42 @@ Router.use(bodyParser.urlencoded({ extended: true })); -Router.get('/', cors(), function(req, res, next) { - res.redirect('/launchpad/?api_server=' + req.protocol + '://' + configurationAPI.globalConfiguration.get().api_server + '&upload_server=' + req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname)); +Router.get('/login.html', cors(), function(req, res) { + res.render('login.html'); + res.end(); +}); + +Router.use(/^\/(?!session).*/, function(req, res, next) { + var api_server = req.query['api_server'] || (req.protocol + '://' + configurationAPI.globalConfiguration.get().api_server); + if (req.session && req.session.loggedIn) { + 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)); + } else { + res.redirect('/user_management/?api_server=' + api_server + '&upload_server=' + req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname) + '#/user-profile'); + } + } + } else { + next(); + } }); Router.get('/nav', cors(), function(req, res) {