[Mapbender-commits] r9858 - trunk/mapbender/resources/db/pgsql/UTF-8/update

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue Feb 6 01:05:12 PST 2018


Author: armin11
Date: 2018-02-06 01:05:12 -0800 (Tue, 06 Feb 2018)
New Revision: 9858

Modified:
   trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql
Log:
New function to pull responsible organization for ressource (dataset,wms,wfs) - needed for ckan sync

Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql	2018-02-01 15:53:20 UTC (rev 9857)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.4_to_2.8_pgsql_UTF-8.sql	2018-02-06 09:05:12 UTC (rev 9858)
@@ -2291,3 +2291,49 @@
 ALTER FUNCTION mb_monitor_after()
   OWNER TO postgres;
 
+-- new function to pull responsible organization
+-- Function: f_get_responsible_organization_for_ressource(integer, varchar)
+
+-- DROP FUNCTION f_get_responsible_organization_for_ressource(integer, varchar);
+
+CREATE OR REPLACE FUNCTION f_get_responsible_organization_for_ressource(i_ressource_id integer, s_ressource_type varchar)
+  RETURNS integer AS
+$BODY$DECLARE
+  -- s_ressource_type is 'dataset', 'wms' or 'wfs'
+  -- select f_get_responsible_organization_for_ressource(1,'dataset');
+  i_resp_orga_id INTEGER;
+
+BEGIN
+
+IF s_ressource_type='dataset' THEN 
+     i_resp_orga_id := fkey_mb_group_id FROM mb_metadata WHERE metadata_id = i_ressource_id;
+     IF i_resp_orga_id IS NULL THEN
+        --get primary group for fkey_user_id
+	i_resp_orga_id := fkey_mb_group_id FROM mb_user_mb_group WHERE mb_user_mb_group_type = 2 AND fkey_mb_user_id = (SELECT fkey_mb_user_id FROM mb_metadata WHERE metadata_id = i_ressource_id) LIMIT 1;
+        --get primary group for fkey_user_id
+     END IF;
+ELSIF s_ressource_type='wms' THEN 
+     i_resp_orga_id := fkey_mb_group_id FROM wms WHERE wms_id = i_ressource_id;
+     IF i_resp_orga_id IS NULL THEN
+        --get primary group for fkey_user_id
+	i_resp_orga_id := fkey_mb_group_id FROM mb_user_mb_group WHERE mb_user_mb_group_type = 2 AND fkey_mb_user_id = (SELECT wms_owner FROM wms WHERE wms_id = i_ressource_id) LIMIT 1;
+        --get primary group for fkey_user_id
+     END IF;
+ELSIF s_ressource_type='wfs' THEN 
+     i_resp_orga_id := fkey_mb_group_id FROM wfs WHERE wfs_id = i_ressource_id;
+     IF i_resp_orga_id IS NULL THEN
+        --get primary group for fkey_user_id
+	i_resp_orga_id := fkey_mb_group_id FROM mb_user_mb_group WHERE mb_user_mb_group_type = 2 AND fkey_mb_user_id = (SELECT wfs_owner FROM wfs WHERE wfs_id = i_ressource_id) LIMIT 1;
+        --get primary group for fkey_user_id
+     END IF;
+END IF;
+
+RETURN i_resp_orga_id;
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT
+  COST 100;
+ALTER FUNCTION f_get_responsible_organization_for_ressource(integer, varchar)
+  OWNER TO postgres;
+



More information about the Mapbender_commits mailing list