diff schema/manage_users.sql @ 2912:93fa55bce126

Add utility function to get users area of responsibility
author Tom Gottfried <tom@intevation.de>
date Tue, 02 Apr 2019 19:25:17 +0200
parents 5bb1e3c1f364
children 69292eb68984
line wrap: on
line diff
--- a/schema/manage_users.sql	Tue Apr 02 19:24:08 2019 +0200
+++ b/schema/manage_users.sql	Tue Apr 02 19:25:17 2019 +0200
@@ -4,7 +4,7 @@
 -- SPDX-License-Identifier: AGPL-3.0-or-later
 -- License-Filename: LICENSES/AGPL-3.0.txt
 
--- Copyright (C) 2018 by via donau
+-- Copyright (C) 2018, 2019 by via donau
 --   – Österreichische Wasserstraßen-Gesellschaft mbH
 -- Software engineering by Intevation GmbH
 
@@ -68,6 +68,22 @@
     STABLE PARALLEL SAFE;
 
 
+CREATE OR REPLACE FUNCTION users.current_user_area_utm()
+    RETURNS geometry
+    AS $$
+        DECLARE utm_area geometry;
+        BEGIN
+            SELECT ST_Transform(area::geometry, best_utm(area))
+                INTO STRICT utm_area
+                FROM users.responsibility_areas
+                WHERE country = users.current_user_country();
+            RETURN utm_area;
+        END;
+    $$
+    LANGUAGE plpgsql
+    STABLE PARALLEL SAFE;
+
+
 CREATE OR REPLACE FUNCTION internal.create_user() RETURNS trigger
 AS $$
 BEGIN