Mercurial > gemma
changeset 2933:a5642ee4c6d0
Let sys_admin import distance marks ashore without restriction
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 04 Apr 2019 14:08:01 +0200 |
parents | 173ce013a021 |
children | cfa0adbfce63 |
files | pkg/imports/dma.go |
diffstat | 1 files changed, 12 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/dma.go Thu Apr 04 12:47:56 2019 +0200 +++ b/pkg/imports/dma.go Thu Apr 04 14:08:01 2019 +0200 @@ -80,27 +80,24 @@ SELECT users.current_user_area_utm() AS a ) DELETE FROM waterway.distance_marks -WHERE ST_Covers( - (SELECT a FROM resp), - ST_Transform(geom::geometry, (SELECT ST_SRID(a) FROM resp))) +WHERE pg_has_role('sys_admin', 'MEMBER') + OR ST_Covers((SELECT a FROM resp), + ST_Transform(geom::geometry, (SELECT ST_SRID(a) FROM resp))) ` insertDistanceMarksSQL = ` WITH resp AS ( SELECT users.current_user_area_utm() AS a ) INSERT INTO waterway.distance_marks (geom, catdis) -SELECT ST_Transform(clipped.geom, 4326)::geography, $3 FROM ( - SELECT (ST_Dump( - ST_Intersection( - (SELECT a FROM resp), - ST_Transform( - ST_GeomFromWKB($1, $2::integer), - (SELECT ST_SRID(a) FROM resp) - ) - ) - )).geom AS geom - ) AS clipped - WHERE clipped.geom IS NOT NULL +SELECT ST_Transform( + CASE WHEN pg_has_role('sys_admin', 'MEMBER') + THEN new_dma + ELSE ST_Intersection((SELECT a FROM resp), + ST_Transform(new_dma, (SELECT ST_SRID(a) FROM resp))) + END, + 4326), + $3 + FROM ST_GeomFromWKB($1, $2::integer) AS new_dma (new_dma) RETURNING id ` )