Merge pull request #1140 from Algunenano/local_password

Fix multiple DB login issues
This commit is contained in:
Raúl Marín
2019-11-12 13:23:34 +01:00
committed by GitHub
10 changed files with 23 additions and 28 deletions
+2
View File
@@ -14,6 +14,8 @@ Announcements:
- Be able to set a coherent TTL in Cache-Control header to expire all resources belonging to a map simultaneously.
- When `cache buster` in request path is `0` set header `Last-Modified` to now, it avoids stalled content in 3rd party cache providers when they add `If-Modified-Since` header into the request.
- Adding a logger to MapStore (#1134)
- Qualify calls to cartodb extension so having it in the search_path isn't necessary.
- Fix multiple DB login issues.
## 7.2.0
Released 2019-09-30
+1 -1
View File
@@ -8,7 +8,7 @@ var DataviewFactoryWithOverviews = require('../models/dataview/overviews/factory
const dbParamsFromReqParams = require('../utils/database-params');
var OverviewsQueryRewriter = require('../utils/overviews-query-rewriter');
var overviewsQueryRewriter = new OverviewsQueryRewriter({
zoom_level: 'CDB_ZoomFromScale(!scale_denominator!)'
zoom_level: 'cartodb.CDB_ZoomFromScale(!scale_denominator!)'
});
var dot = require('dot');
+3 -3
View File
@@ -12,9 +12,9 @@ OverviewsMetadataBackend.prototype.getOverviewsMetadata = function (username, sq
// FIXME: Currently using internal function _cdb_schema_name
// CDB_Overviews should provide the schema information directly.
const query = `
SELECT *, _cdb_schema_name(base_table)
FROM CDB_Overviews(
CDB_QueryTablesText($windshaft$${queryUtils.substituteDummyTokens(sql)}$windshaft$)
SELECT *, cartodb._cdb_schema_name(base_table)
FROM cartodb.CDB_Overviews(
cartodb.CDB_QueryTablesText($windshaft$${queryUtils.substituteDummyTokens(sql)}$windshaft$)
);
`;
this.pgQueryRunner.run(username, query, function handleOverviewsRows(err, rows) {
+2 -8
View File
@@ -3,6 +3,7 @@
var PSQL = require('cartodb-psql');
var _ = require('underscore');
const debug = require('debug')('cachechan');
const dbParamsFromReqParams = require('../utils/database-params');
function PgConnection(metadataBackend) {
this.metadataBackend = metadataBackend;
@@ -124,14 +125,7 @@ PgConnection.prototype.getConnection = function(username, callback) {
if (err) {
return callback(err);
}
return callback(err, new PSQL({
user: databaseParams.dbuser,
pass: databaseParams.dbpass,
host: databaseParams.dbhost,
port: databaseParams.dbport,
dbname: databaseParams.dbname
}));
return callback(err, new PSQL(dbParamsFromReqParams(databaseParams)));
});
};
+2 -7
View File
@@ -1,6 +1,7 @@
'use strict';
var PSQL = require('cartodb-psql');
const dbParamsFromReqParams = require('../utils/database-params');
function PgQueryRunner(pgConnection) {
this.pgConnection = pgConnection;
@@ -22,13 +23,7 @@ PgQueryRunner.prototype.run = function(username, query, callback) {
return callback(err);
}
const psql = new PSQL({
user: databaseParams.dbuser,
pass: databaseParams.dbpass,
host: databaseParams.dbhost,
port: databaseParams.dbport,
dbname: databaseParams.dbname
});
const psql = new PSQL(dbParamsFromReqParams(databaseParams));
psql.query(query, function (err, resultSet) {
resultSet = resultSet || {};
@@ -92,7 +92,12 @@ MapConfigNamedLayersAdapter.prototype.getMapConfig = function (user, requestMapC
layers.push(layer);
if (layersResult.datasource) {
datasourceBuilder.withLayerDatasource(currentLayerIndex, {
user: dbAuth.dbuser
user: dbAuth.dbuser,
// Used internally (PSQL)
pass: dbAuth.dbpassword,
dbpassword: dbAuth.dbpassword,
// Used by Mapnik
password: dbAuth.dbpassword
});
}
currentLayerIndex++;
@@ -242,7 +242,7 @@ module.exports = class NamedMapMapConfigProvider extends BaseMapConfigProvider {
}
dbParams.dbuser = databaseParams.dbuser;
dbParams.dbpass = databaseParams.dbpass;
dbParams.dbpassword = databaseParams.dbpassword;
dbParams.dbhost = databaseParams.dbhost;
dbParams.dbport = databaseParams.dbport;
dbParams.dbname = databaseParams.dbname;
+2 -2
View File
@@ -31,11 +31,11 @@ var rendererConfig = _.defaults(global.environment.renderer || {}, {
});
rendererConfig.mapnik.queryRewriter = new OverviewsQueryRewriter({
zoom_level: 'CDB_ZoomFromScale(!scale_denominator!)'
zoom_level: 'cartodb.CDB_ZoomFromScale(!scale_denominator!)'
});
rendererConfig.mvt.queryRewriter = new OverviewsQueryRewriter({
zoom_level: 'CDB_ZoomFromScale(!scale_denominator!)'
zoom_level: 'cartodb.CDB_ZoomFromScale(!scale_denominator!)'
});
// Perform keyword substitution in statsd
+1 -1
View File
@@ -8,7 +8,7 @@ module.exports.getQueryActualRowCount = function (query) {
};
function getQueryRowEstimation(query) {
return 'select CDB_EstimateRowCount($windshaft$' + substituteDummyTokens(query) + '$windshaft$) as rows';
return 'select cartodb.CDB_EstimateRowCount($windshaft$' + substituteDummyTokens(query) + '$windshaft$) as rows';
}
module.exports.getQueryRowEstimation = getQueryRowEstimation;
+3 -4
View File
@@ -18,14 +18,13 @@ SET default_with_oids = false;
-- public user role
DROP USER IF EXISTS :PUBLICUSER;
CREATE USER :PUBLICUSER WITH PASSWORD ':PUBLICPASS';
GRANT USAGE ON SCHEMA cartodb TO :PUBLICUSER;
GRANT ALL ON CDB_TableMetadata TO :PUBLICUSER;
SELECT current_setting('search_path') AS my_path \gset
ALTER ROLE :PUBLICUSER SET search_path = :my_path, cartodb;
-- db owner role
DROP USER IF EXISTS :TESTUSER;
CREATE USER :TESTUSER WITH PASSWORD ':TESTPASS';
GRANT USAGE ON SCHEMA cartodb TO :TESTUSER;
GRANT ALL ON CDB_TableMetadata TO :TESTUSER;
ALTER ROLE :TESTUSER SET search_path = :my_path, cartodb;
-- regular user role 1
DROP USER IF EXISTS test_windshaft_regular1;