mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 02:41:35 +01:00
Add collaborator page
This commit is contained in:
54
rest-api/db/migrations/20240805151318_rls_collab_table.sql
Normal file
54
rest-api/db/migrations/20240805151318_rls_collab_table.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user