feat: profile from hybridAuth

This commit is contained in:
2019-11-05 07:47:18 +01:00
parent 0b2d3f19c0
commit f2634dcbd5
+15 -5
View File
@@ -215,12 +215,18 @@ function IsValidRedmineUser(username) {
var query = ""
var queryparams = [];
queryparams[0] = uid;
var query = "SELECT DISTINCT ON (uid) users.login AS uid, users.firstname AS givenName, users.lastname AS sn FROM users WHERE users.status=1 AND users.login=$1";
// var query = "select SELECT DISTINCT ON (uid) users.login AS uid, users.firstname AS givenName, users.lastname AS sn, users.login||\'@talk.vnc.de\' AS mail FROM users WHERE users.status=1 AND users.login=$1 AND substring(users.hashed_password, 0, length(users.hashed_password)+1) = encode(digest(users.salt||encode(digest(:password, \'sha1\'), \'hex\'), \'sha1\'), \'hex\')";
queryparams[1] = api;
// var query = "SELECT DISTINCT ON (uid) users.login AS uid, users.firstname AS givenName, users.lastname AS sn FROM users WHERE users.status=1 AND users.login=$1";
var query = "SELECT DISTINCT ON (uid) users.login AS uid, users.firstname AS givenName, users.lastname AS sn, email_addresses.address AS mail, ";
query += "tokens.value AS RedmineAPIKey FROM users, tokens, email_addresses WHERE users.status=1 AND tokens.user_id = users.id ";
query += "AND tokens.action=$2 AND email_addresses.user_id = users.id AND users.login=$1";
dbpool.query(query, queryparams, function (derr, dres) {
if (derr == null) {
if (dres.rowCount > 0) {
resolve(true);
resolve(dres.rows[0]);
} else {
resolve(false);
}
@@ -344,7 +350,11 @@ app.get('/', async function (req, res) {
}
}
if (config.useRedmineAuth) {
let validRedmineUser = await IsValidRedmineUser(username);
let redmineProfile = await IsValidRedmineUser(username);
var validRedmineUser = false;
if (redmineProfile) {
validRedmineUser = true;
}
console.log(moment().format("LTS") + ' username ' + username +' - IsValidRedmineUser: ', validRedmineUser);
console.log(moment().format("LTS") + ' username ' + username +' - password: ', password);
console.log(moment().format("LTS") + ' username ' + username +' - indesxforOldToken: ', password.indexOf("-"));
@@ -354,7 +364,7 @@ app.get('/', async function (req, res) {
console.log("IsValidOldSecret: ", IsValidOldSecret(username, password));
console.log("IsValidJWT: ", IsValidJWT(username, password));
if (validRedmineUser && (validRedmineAuth || IsValidOldSecret(username, password) || IsValidJWT(username, password))) {
res.status(200).json(null);
res.status(200).json(redmineProfile);
} else {
res.status(401).json(null);
}