view schema/updates/1313/01.optimize_area_policies.sql @ 5559:ce9a9a1bf92f

Make invalid output of ISRSrange_area() less likely, next try Since ST_MakeValid() might return a collection of lower-to-equal dimension geometries, distill only the polygons from it. This should prevent respective errors when trying to save the result to a column of type MultiPolygon.
author Tom Gottfried <tom@intevation.de>
date Thu, 02 Dec 2021 12:37:33 +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));