X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fframework%2Fcore%2Fmodules%2Fapi%2Fsessions.js;h=9583241a4706949ba8cbf42922804df7f1b36f9b;hb=a0fefa94b21ae1620756cda0d22d5de90b9bcaa9;hp=2f5ace3dd5a0ca29bf92212e124aef9201530b0f;hpb=aa95200177f42de39a102a559713bde13dedb30d;p=osm%2FUI.git diff --git a/skyquake/framework/core/modules/api/sessions.js b/skyquake/framework/core/modules/api/sessions.js index 2f5ace3dd..9583241a4 100644 --- a/skyquake/framework/core/modules/api/sessions.js +++ b/skyquake/framework/core/modules/api/sessions.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -31,18 +31,22 @@ var sessionsAPI = {}; var _ = require('lodash'); var base64 = require('base-64'); var APIVersion = '/v2'; +var configurationAPI = require('./configuration'); -function logAndReject(mesg, reject) { +function logAndReject(mesg, reject, errCode) { res.errorMessage = { error: mesg } + res.statusCode = errCode || constants.HTTP_RESPONSE_CODES.ERROR.BAD_REQUEST; console.log(mesg); reject(res); } function logAndRedirectToLogin(mesg, res, req) { + var api_server = req.query['api_server'] || (req.protocol + '://' + configurationAPI.globalConfiguration.get().api_server); + var upload_server = req.protocol + '://' + (configurationAPI.globalConfiguration.get().upload_server || req.hostname); console.log(mesg); - res.redirect('login.html?api_server=' + req.query['api_server']); + res.redirect('login.html?api_server=' + api_server + '&upload_server=' + upload_server); res.end(); } @@ -104,14 +108,17 @@ sessionsAPI.create = function(req, res) { }); }); - req.session.projectId = (project_list_for_user.length > 0) && project_list_for_user[0]; + req.session.projectId = (project_list_for_user.length > 0) && project_list_for_user.sort() && project_list_for_user[0]; } req.session.authorization = authorization_header_string; req.session.loggedIn = true; - - var successMsg = 'User =>' + username + ' successfully logged in.'; - successMsg += req.session.projectId ? 'Project =>' + req.session.projectId + ' set as default.' : ''; + req.session.userdata = { + username: username, + // project: req.session.projectId + }; + var successMsg = 'User => ' + username + ' successfully logged in.'; + successMsg += req.session.projectId ? 'Project => ' + req.session.projectId + ' set as default.' : ''; console.log(successMsg); @@ -121,6 +128,13 @@ sessionsAPI.create = function(req, res) { status: successMsg }) }; + + req.session.save(function(err) { + if (err) { + console.log('Error saving session to store', err); + } + }) + resolve(response); }).catch(function(error) { @@ -136,19 +150,24 @@ sessionsAPI.addProjectToSession = function(req, res) { return new Promise(function(resolve, reject) { if (req.session && req.session.loggedIn == true) { req.session.projectId = req.params.projectId; - var successMsg = 'Added project' + projectId + ' to session' + req.sessionID; - console.log(successMsg); + req.session.save(function(err) { + if (err) { + console.log('Error saving session to store', err); + } + var successMsg = 'Added project ' + req.session.projectId + ' to session ' + req.sessionID; + console.log(successMsg); + + return resolve ({ + statusCode: constants.HTTP_RESPONSE_CODES.SUCCESS.OK, + data: JSON.stringify({ + status: successMsg + }) + }); - return resolve ({ - statusCode: constants.HTTP_RESPONSE_CODES.SUCCESS.OK, - data: JSON.stringify({ - status: successMsg - }) + var errorMsg = 'Session does not exist or not logged in'; + logAndReject(errorMsg, reject, constants.HTTP_RESPONSE_CODES.ERROR.NOT_FOUND); }); } - - var errorMsg = 'Session does not exist or not logged in'; - logAndReject(errorMsg, reject); }); }