/*
- *
+ *
* Copyright 2016 RIFT.IO Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
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.render('login.html?api_server=' + req.query['api_server']);
+ res.redirect('login.html?api_server=' + api_server + '&upload_server=' + upload_server);
res.end();
}
});
});
- 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);
status: successMsg
})
};
+
+ req.session.save(function(err) {
+ if (err) {
+ console.log('Error saving session to store', err);
+ }
+ })
+
resolve(response);
}).catch(function(error) {
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);
});
}
sessionsAPI.delete = function(req, res) {
- var reqRef = req;
- var res = res;
var api_server = req.query["api_server"];
var uri = utils.confdPort(api_server);
var url = uri + '/api/logout';
'Authorization': req.session.authorization
}),
forever: constants.FOREVER_ON,
- rejectUnauthorized: constants.REJECT_UNAUTHORIZED
+ rejectUnauthorized: constants.REJECT_UNAUTHORIZED,
+ resolveWithFullResponse: true
}),
new Promise(function(success, failure) {
req.session.destroy(function(err) {