view schema/updates/1313/01.optimize_area_policies.sql @ 5030:737d7859dd86

Store fairway dimensions as MultiPolygon This avoids storing a single invalid geometry from the data source as multiple valid geometries with duplicate attribute sets. The previous behaviour was not correctly handled in import tracking, because only the ID of the first item in a set of multiple geometries generated from a single entry from the data source was tracked.
author Tom Gottfried <tom@intevation.de>
date Wed, 18 Mar 2020 18:42:30 +0100
parents 1fef9d8e7eb2
children
line wrap: on
line source

-- This is Free Software under GNU Affero General Public License v >= 3.0
-- without warranty, see README.md and license for details.

-- SPDX-License-Identifier: AGPL-3.0-or-later
-- License-Filename: LICENSES/AGPL-3.0.txt

-- Copyright (C) 2019 by via donau
--   – Österreichische Wasserstraßen-Gesellschaft mbH
-- Software engineering by Intevation GmbH

-- Author(s):
--  * Sascha Wilde <sascha.wilde@intevation.de>
--  * Tom Gottried <tom@intevation.de>


ALTER POLICY same_country ON waterway.gauge_measurements
    TO waterway_admin
    USING (staging_done
           OR (location).country_code =
               (SELECT country FROM users.list_users
                WHERE username = current_user))
    WITH CHECK ((location).country_code =
                 (SELECT country FROM users.list_users
                  WHERE username = current_user));

ALTER POLICY same_country ON waterway.waterway_profiles
    TO waterway_admin
    USING (staging_done
           OR (location).country_code =
               (SELECT country FROM users.list_users
                WHERE username = current_user))
    WITH CHECK ((location).country_code =
                (SELECT country FROM users.list_users
                 WHERE username = current_user));

ALTER POLICY responsibility_area ON waterway.bottlenecks
    TO waterway_admin
    USING (staging_done OR users.utm_covers(area))
    WITH CHECK (users.utm_covers(area));

ALTER POLICY responsibility_area ON waterway.sounding_results
    TO waterway_admin
    USING (staging_done OR users.utm_covers(area))
    WITH CHECK (users.utm_covers(area));

ALTER POLICY responsibility_area ON waterway.fairway_dimensions
    TO waterway_admin
    USING (staging_done OR users.utm_covers(area))
    WITH CHECK (users.utm_covers(area));