add parameter asMaster to setDBAuth

This commit is contained in:
Eneko Lakasta
2018-02-07 17:14:13 +01:00
parent 4c76a921b1
commit 95538707c9
5 changed files with 33 additions and 15 deletions
+4 -2
View File
@@ -105,8 +105,9 @@ AuthApi.prototype.authorize = function(req, res, callback) {
return self.authorizedBySigner(res, this);
}
const asMaster = false;
// authorized by api key, login as the given username and stop
self.pgConnection.setDBAuth(user, res.locals, function(err) {
self.pgConnection.setDBAuth(user, res.locals, asMaster, function(err) {
callback(err, true); // authorized (or error)
});
},
@@ -129,7 +130,8 @@ AuthApi.prototype.authorize = function(req, res, callback) {
return callback(null, false);
}
self.pgConnection.setDBAuth(user, res.locals, function(err) {
const asMaster = true;
self.pgConnection.setDBAuth(user, res.locals, asMaster, function(err) {
req.profiler.done('setDBAuth');
callback(err, true); // authorized (or error)
});
+23 -10
View File
@@ -20,18 +20,30 @@ module.exports = PgConnection;
//
// @param callback function(err)
//
PgConnection.prototype.setDBAuth = function(username, params, callback) {
this.metadataBackend.getMasterApikey(username, (err, apikey)=> {
if (err) {
return callback(err);
}
PgConnection.prototype.setDBAuth = function(username, params, asMaster, callback) {
if (asMaster) {
this.metadataBackend.getMasterApikey(username, (err, apikey) => {
if (err) {
return callback(err);
}
params.dbuser = apikey.databaseRole;
params.dbpassword = apikey.databasePassword;
params.dbuser = apikey.databaseRole;
params.dbpassword = apikey.databasePassword;
callback();
});
return callback();
});
} else {
this.metadataBackend.getApikey(username, params.api_key || params.map_key, (err, apikey) => {
if (err) {
return callback(err);
}
params.dbuser = apikey.databaseRole;
params.dbpassword = apikey.databasePassword;
return callback();
});
}
};
// Set db connection parameters to those for the given username
@@ -85,7 +97,8 @@ PgConnection.prototype.getConnection = function(username, callback) {
require('debug')('cachechan')("getConn1");
step(
function setAuth() {
self.setDBAuth(username, params, this);
const asMaster = true;
self.setDBAuth(username, params, asMaster, this);
},
function setConn(err) {
assert.ifError(err);
+2 -1
View File
@@ -22,7 +22,8 @@ PgQueryRunner.prototype.run = function(username, query, callback) {
step(
function setAuth() {
self.pgConnection.setDBAuth(username, params, this);
const asMaster = true;
self.pgConnection.setDBAuth(username, params, asMaster, this);
},
function setConn(err) {
assert.ifError(err);
@@ -109,7 +109,8 @@ MapConfigNamedLayersAdapter.prototype.getMapConfig = function (user, requestMapC
if (_.some(layers, isNamedTypeLayer)) {
// Lazy load dbAuth
this.pgConnection.setDBAuth(user, dbAuth, function(err) {
const asMaster = true;
this.pgConnection.setDBAuth(user, dbAuth, asMaster, function(err) {
if (err) {
return callback(err);
}
@@ -235,7 +235,8 @@ NamedMapMapConfigProvider.prototype.setDBParams = function(cdbuser, params, call
var self = this;
step(
function setAuth() {
self.pgConnection.setDBAuth(cdbuser, params, this);
const asMaster = true;
self.pgConnection.setDBAuth(cdbuser, params, asMaster, this);
},
function setConn(err) {
assert.ifError(err);