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