mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 19:01:35 +01:00
54 lines
1.5 KiB
SQL
54 lines
1.5 KiB
SQL
-- migrate:up
|
|
ALTER TABLE internal.collab ENABLE ROW LEVEL SECURITY;
|
|
|
|
CREATE POLICY view_collaborations ON internal.collab
|
|
FOR SELECT
|
|
USING (
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM internal.website
|
|
WHERE internal.website.id = internal.collab.website_id
|
|
AND internal.website.owner_id = (current_setting('request.jwt.claims', true)::json->>'user_id')::UUID
|
|
)
|
|
);
|
|
|
|
CREATE POLICY insert_collaborations ON internal.collab
|
|
FOR INSERT
|
|
WITH CHECK (
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM internal.website
|
|
WHERE internal.website.id = internal.collab.website_id
|
|
AND internal.website.owner_id = (current_setting('request.jwt.claims', true)::json->>'user_id')::UUID
|
|
)
|
|
);
|
|
|
|
CREATE POLICY update_collaborations ON internal.collab
|
|
FOR UPDATE
|
|
USING (
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM internal.website
|
|
WHERE internal.website.id = internal.collab.website_id
|
|
AND internal.website.owner_id = (current_setting('request.jwt.claims', true)::json->>'user_id')::UUID
|
|
)
|
|
);
|
|
|
|
CREATE POLICY delete_collaborations ON internal.collab
|
|
FOR DELETE
|
|
USING (
|
|
EXISTS (
|
|
SELECT 1
|
|
FROM internal.website
|
|
WHERE internal.website.id = internal.collab.website_id
|
|
AND internal.website.owner_id = (current_setting('request.jwt.claims', true)::json->>'user_id')::UUID
|
|
)
|
|
);
|
|
|
|
-- migrate:down
|
|
DROP POLICY view_collaborations ON internal.collab;
|
|
DROP POLICY insert_collaborations ON internal.collab;
|
|
DROP POLICY update_collaborations ON internal.collab;
|
|
DROP POLICY delete_collaborations ON internal.collab;
|
|
|
|
ALTER TABLE internal.collab DISABLE ROW LEVEL SECURITY; |