2017-10-04 22:38:54 +08:00
|
|
|
\set VERBOSITY terse
|
2016-02-09 17:50:45 +08:00
|
|
|
-- Add to the search path the schema
|
|
|
|
SET search_path TO public,cartodb,cdb_dataservices_client;
|
|
|
|
-- Mock the server functions
|
2018-09-10 18:54:37 +08:00
|
|
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURNS Geometry AS $$
|
|
|
|
BEGIN
|
2018-09-10 18:54:37 +08:00
|
|
|
RAISE NOTICE 'cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (%, %, %)', username, orgname, city_name;
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURN NULL;
|
|
|
|
END;
|
|
|
|
$$ LANGUAGE 'plpgsql';
|
2018-09-10 18:54:37 +08:00
|
|
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURNS Geometry AS $$
|
|
|
|
BEGIN
|
2018-09-10 18:54:37 +08:00
|
|
|
RAISE NOTICE 'cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (%, %, %, %)', username, orgname, city_name, country_name;
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURN NULL;
|
|
|
|
END;
|
|
|
|
$$ LANGUAGE 'plpgsql';
|
2018-09-10 18:54:37 +08:00
|
|
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURNS Geometry AS $$
|
|
|
|
BEGIN
|
2018-09-10 18:54:37 +08:00
|
|
|
RAISE NOTICE 'cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (%, %, %, %, %)', username, orgname, city_name, admin1_name, country_name;
|
2016-02-09 17:50:45 +08:00
|
|
|
RETURN NULL;
|
|
|
|
END;
|
|
|
|
$$ LANGUAGE 'plpgsql';
|
2018-09-06 22:40:05 +08:00
|
|
|
-- -- Exercise the public and the proxied function
|
|
|
|
-- No permissions granted
|
2016-02-09 17:50:45 +08:00
|
|
|
SELECT cdb_geocode_namedplace_point('Elx');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Spain');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Valencia', 'Spain');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
-- Grant other permissions but geocoding
|
2018-09-10 19:40:15 +08:00
|
|
|
SELECT CDB_Conf_SetConf('api_keys_postgres', '{"permissions": ["routing", "isolines"]}');
|
2018-09-06 22:40:05 +08:00
|
|
|
cdb_conf_setconf
|
|
|
|
------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT cdb_geocode_namedplace_point('Elx');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Spain');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Valencia', 'Spain');
|
2018-09-10 22:45:31 +08:00
|
|
|
ERROR: Geocoding permission denied
|
2018-09-06 22:40:05 +08:00
|
|
|
-- Grant geocoding permissions
|
2018-09-10 19:40:15 +08:00
|
|
|
SELECT CDB_Conf_SetConf('api_keys_postgres', '{"permissions": ["geocoding"]}');
|
2018-09-06 22:40:05 +08:00
|
|
|
cdb_conf_setconf
|
|
|
|
------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT cdb_geocode_namedplace_point('Elx');
|
2018-09-10 19:40:15 +08:00
|
|
|
NOTICE: cdb_dataservices_client._cdb_geocode_namedplace_point(3): [contrib_regression] REMOTE NOTICE: cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (test_user, <NULL>, Elx)
|
2016-02-09 17:50:45 +08:00
|
|
|
cdb_geocode_namedplace_point
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Spain');
|
2018-09-10 19:40:15 +08:00
|
|
|
NOTICE: cdb_dataservices_client._cdb_geocode_namedplace_point(4): [contrib_regression] REMOTE NOTICE: cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (test_user, <NULL>, Elx, Spain)
|
2016-02-09 17:50:45 +08:00
|
|
|
cdb_geocode_namedplace_point
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT cdb_geocode_namedplace_point('Elx', 'Valencia', 'Spain');
|
2018-09-10 19:40:15 +08:00
|
|
|
NOTICE: cdb_dataservices_client._cdb_geocode_namedplace_point(5): [contrib_regression] REMOTE NOTICE: cdb_dataservices_server.cdb_geocode_namedplace_point invoked with params (test_user, <NULL>, Elx, Valencia, Spain)
|
2016-02-09 17:50:45 +08:00
|
|
|
cdb_geocode_namedplace_point
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
2018-09-06 22:40:05 +08:00
|
|
|
-- Remove permissions
|
|
|
|
SELECT CDB_Conf_RemoveConf('api_keys_postgres');
|
|
|
|
cdb_conf_removeconf
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|