changeset 345:b97b3172c61a

Add staging feature to more tables Added tables currently only have limited visibility for waterway_user but not yet policies for write access.
author Tom Gottfried <tom@intevation.de>
date Mon, 06 Aug 2018 15:19:05 +0200
parents e98033e3683a
children ad0e47c1fedf
files schema/auth.sql schema/gemma.sql
diffstat 2 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/schema/auth.sql	Mon Aug 06 14:52:04 2018 +0200
+++ b/schema/auth.sql	Mon Aug 06 15:19:05 2018 +0200
@@ -54,14 +54,17 @@
 --
 
 -- Staging area
-CREATE FUNCTION create_hide_staging_policy()
-    RETURNS void
-AS $$
+DO LANGUAGE plpgsql
+$$
 DECLARE the_table varchar;
 BEGIN
     FOREACH the_table IN ARRAY ARRAY[
-        'bottlenecks', 'sounding_results']
-    -- TODO: add all relevant tables here
+        'gauge_measurements',
+        'sections_stretches',
+        'waterway_profiles',
+        'fairway_dimensions',
+        'bottlenecks',
+        'sounding_results']
     LOOP
         EXECUTE format('CREATE POLICY hide_staging ON waterway.%I '
             'FOR SELECT TO waterway_user USING (staging_done)', the_table);
@@ -69,10 +72,7 @@
             the_table);
     END LOOP;
 END;
-$$
-LANGUAGE plpgsql;
-SELECT create_hide_staging_policy();
-DROP FUNCTION create_hide_staging_policy;
+$$;
 
 CREATE POLICY user_templates ON users.user_templates FOR ALL TO waterway_user
     USING (username IN(SELECT username FROM users.list_users));
--- a/schema/gemma.sql	Mon Aug 06 14:52:04 2018 +0200
+++ b/schema/gemma.sql	Mon Aug 06 15:19:05 2018 +0200
@@ -249,7 +249,8 @@
         value_max double precision, -- XXX: NOT NULL if predicted?
         --- TODO: Add a double range type for checking?
         date_info timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
-        source_organization varchar NOT NULL -- "originator"
+        source_organization varchar NOT NULL, -- "originator"
+        staging_done boolean NOT NULL DEFAULT false
     )
     CREATE TRIGGER gauge_measurements_date_info
         BEFORE UPDATE ON gauge_measurements
@@ -282,7 +283,8 @@
         objnam varchar NOT NULL,
         nobjnam varchar,
         date_info timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
-        source_organization varchar NOT NULL
+        source_organization varchar NOT NULL,
+        staging_done boolean NOT NULL DEFAULT false
     )
     CREATE TRIGGER sections_stretches_date_info
         BEFORE UPDATE ON sections_stretches
@@ -302,7 +304,8 @@
         CHECK(COALESCE(lnwl, mwl, hnwl, fe30, fe100) IS NULL
             OR validity IS NOT NULL),
         date_info timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
-        source_organization varchar NOT NULL
+        source_organization varchar NOT NULL,
+        staging_done boolean NOT NULL DEFAULT false
     )
     CREATE TRIGGER waterway_profiles_date_info
         BEFORE UPDATE ON waterway_profiles
@@ -315,7 +318,8 @@
         max_width smallint NOT NULL,
         min_depth smallint NOT NULL,
         date_info timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
-        source_organization varchar NOT NULL
+        source_organization varchar NOT NULL,
+        staging_done boolean NOT NULL DEFAULT false
     )
     CREATE TRIGGER fairway_dimensions_date_info
         BEFORE UPDATE ON fairway_dimensions