From c4711d38e0d8a7382c8a82a02cfa447f4b3c0651 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Tue, 16 Apr 2024 19:53:24 +0200 Subject: [PATCH] fix: fix delete perms user folders --- ...40416175148_tighten_delete_perms2.down.sql | 1 + ...0240416175148_tighten_delete_perms2.up.sql | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 backend/migrations/20240416175148_tighten_delete_perms2.down.sql create mode 100644 backend/migrations/20240416175148_tighten_delete_perms2.up.sql diff --git a/backend/migrations/20240416175148_tighten_delete_perms2.down.sql b/backend/migrations/20240416175148_tighten_delete_perms2.down.sql new file mode 100644 index 0000000000..d2f607c5b8 --- /dev/null +++ b/backend/migrations/20240416175148_tighten_delete_perms2.down.sql @@ -0,0 +1 @@ +-- Add down migration script here diff --git a/backend/migrations/20240416175148_tighten_delete_perms2.up.sql b/backend/migrations/20240416175148_tighten_delete_perms2.up.sql new file mode 100644 index 0000000000..a2f897f318 --- /dev/null +++ b/backend/migrations/20240416175148_tighten_delete_perms2.up.sql @@ -0,0 +1,22 @@ + +DO +$do$ + DECLARE + i text; + arr text[] := array['resource', 'script', 'variable', 'schedule', 'flow', 'app', 'raw_app']; + BEGIN + FOREACH i IN ARRAY arr + LOOP + EXECUTE FORMAT( + $$ + DROP POLICY IF EXISTS see_folder_extra_perms_user_delete ON %1$I; + + CREATE POLICY see_folder_extra_perms_user_delete ON %1$I FOR DELETE TO windmill_user + USING (SPLIT_PART(%1$I.path, '/', 1) = 'f' AND SPLIT_PART(%1$I.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); + + $$, + i + ); + END LOOP; + END +$do$;-- Add up migration script here