fix: return profile with redmineAuth only
This commit is contained in:
+22
-4
@@ -226,12 +226,24 @@ 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";
|
||||
queryparams[1] = "api";
|
||||
var query = "SELECT DISTINCT ON (uid) users.login AS uid, users.firstname AS givenName, users.lastname AS sn, ";
|
||||
query += "email_addresses.address as email, tokens.value AS RedmineAPIKey FROM users, tokens, email_addresses ";
|
||||
query += "WHERE users.status=1 AND users.login=$1 and tokens.action=$2 and tokens.user_id=users.id and email_addresses.user_id=users.id";
|
||||
|
||||
// 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\')";
|
||||
dbpool.query(query, queryparams, function (derr, dres) {
|
||||
if (derr == null) {
|
||||
if (dres.rowCount > 0) {
|
||||
resolve(true);
|
||||
var redmineUser = {
|
||||
id: dres.rows[0].uid,
|
||||
firstname: dres.rows[0].givenname,
|
||||
lastname: dres.rows[0].sn,
|
||||
email: dres.rows[0].email,
|
||||
displayName: dres.rows[0].givenname + " " + dres.rows[0].sn,
|
||||
RedmineApiKey: dres.rows[0].redmineapikey
|
||||
}
|
||||
resolve(redmineUser);
|
||||
} else {
|
||||
resolve(false);
|
||||
}
|
||||
@@ -355,7 +367,13 @@ app.get('/', async function (req, res) {
|
||||
}
|
||||
}
|
||||
if (config.useRedmineAuth) {
|
||||
let validRedmineUser = await IsValidRedmineUser(username);
|
||||
let validRedmineUser = false;
|
||||
var finalProfile {};
|
||||
let userProfile = await IsValidRedmineUser(username);
|
||||
|
||||
if (userProfile) {
|
||||
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("-"));
|
||||
@@ -365,7 +383,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(userProfile);
|
||||
} else {
|
||||
res.status(401).json(null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user