From e55338de904718a42e2ba8104820d9807d053faa Mon Sep 17 00:00:00 2001 From: Javier Goizueta Date: Thu, 30 Mar 2017 16:33:12 +0200 Subject: [PATCH] Fix functions to write cdb_conf Two problems fixe with this functions ported from the cartodb extension: * There was an incorrect reference to the cartodb scchema * They need to be SECURITY DEFINER to be usable with the geocoder_api role --- .../extension/cdb_dataservices_server--0.22.0--0.23.0.sql | 6 +++--- server/extension/cdb_dataservices_server--0.23.0.sql | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/extension/cdb_dataservices_server--0.22.0--0.23.0.sql b/server/extension/cdb_dataservices_server--0.22.0--0.23.0.sql index 944de1f..0e22abf 100644 --- a/server/extension/cdb_dataservices_server--0.22.0--0.23.0.sql +++ b/server/extension/cdb_dataservices_server--0.22.0--0.23.0.sql @@ -97,10 +97,10 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_server.CDB_Conf_SetConf(key text, value JSON) RETURNS void AS $$ BEGIN - PERFORM cartodb.CDB_Conf_RemoveConf(key); + PERFORM cdb_dataservices_server.CDB_Conf_RemoveConf(key); EXECUTE 'INSERT INTO cartodb.CDB_CONF (KEY, VALUE) VALUES ($1, $2);' USING key, value; END -$$ LANGUAGE PLPGSQL VOLATILE; +$$ LANGUAGE PLPGSQL VOLATILE SECURITY DEFINER; CREATE OR REPLACE FUNCTION cdb_dataservices_server.CDB_Conf_RemoveConf(key text) @@ -108,7 +108,7 @@ FUNCTION cdb_dataservices_server.CDB_Conf_RemoveConf(key text) BEGIN EXECUTE 'DELETE FROM cartodb.CDB_CONF WHERE KEY = $1;' USING key; END -$$ LANGUAGE PLPGSQL VOLATILE; +$$ LANGUAGE PLPGSQL VOLATILE SECURITY DEFINER; CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) RETURNS Geometry AS $$ diff --git a/server/extension/cdb_dataservices_server--0.23.0.sql b/server/extension/cdb_dataservices_server--0.23.0.sql index d0004ac..a4cb7e9 100644 --- a/server/extension/cdb_dataservices_server--0.23.0.sql +++ b/server/extension/cdb_dataservices_server--0.23.0.sql @@ -1525,10 +1525,10 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_server.CDB_Conf_SetConf(key text, value JSON) RETURNS void AS $$ BEGIN - PERFORM cartodb.CDB_Conf_RemoveConf(key); + PERFORM cdb_dataservices_server.CDB_Conf_RemoveConf(key); EXECUTE 'INSERT INTO cartodb.CDB_CONF (KEY, VALUE) VALUES ($1, $2);' USING key, value; END -$$ LANGUAGE PLPGSQL VOLATILE; +$$ LANGUAGE PLPGSQL VOLATILE SECURITY DEFINER; CREATE OR REPLACE FUNCTION cdb_dataservices_server.CDB_Conf_RemoveConf(key text) @@ -1536,7 +1536,7 @@ FUNCTION cdb_dataservices_server.CDB_Conf_RemoveConf(key text) BEGIN EXECUTE 'DELETE FROM cartodb.CDB_CONF WHERE KEY = $1;' USING key; END -$$ LANGUAGE PLPGSQL VOLATILE; +$$ LANGUAGE PLPGSQL VOLATILE SECURITY DEFINER; CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text, provider text DEFAULT NULL)