feat: profile from hybridAuth
This commit is contained in:
+15
-5
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user