X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fframework%2Fcore%2Fapi_utils%2Futils.js;h=06a4e726309a2a32375d45bff7d0219449f55d99;hp=185c7c6e3940d2aa9018ef79f43a9a90f1729063;hb=82636716208a765fb63214d958cb7bc73fe19fc2;hpb=2ff1ddba3d20163b110f27abfe7875d6edf2255c;ds=sidebyside diff --git a/skyquake/framework/core/api_utils/utils.js b/skyquake/framework/core/api_utils/utils.js index 185c7c6e3..06a4e7263 100644 --- a/skyquake/framework/core/api_utils/utils.js +++ b/skyquake/framework/core/api_utils/utils.js @@ -50,8 +50,17 @@ var confdPort = function(api_server) { }; var projectContextUrl = function(req, url) { - if (req.session && req.session.projectId) { - return url.replace(/(\/api\/operational\/|\/api\/config\/|\/api\/operations\/)(.*)/, '$1project/' + req.session.projectId + '/$2'); + //NOTE: We need to go into the sessionStore because express-session + // does not reliably update the session. + // See https://github.com/expressjs/session/issues/450 + var projectId = (req.session && + req.sessionStore && + req.sessionStore.sessions && + req.sessionStore.sessions[req.session.id] && + JSON.parse(req.sessionStore.sessions[req.session.id])['projectId']) || + (null); + if (projectId) { + return url.replace(/(\/api\/operational\/|\/api\/config\/|\/api\/operations\/)(.*)/, '$1project/' + projectId + '/$2'); } return url;