mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 10:51:36 +01:00
Add legal information operation site
This commit is contained in:
55
rest-api/db/migrations/20240908104458_extra_page_table.sql
Normal file
55
rest-api/db/migrations/20240908104458_extra_page_table.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
-- migrate:up
|
||||
CREATE TABLE internal.legal_information (
|
||||
website_id UUID PRIMARY KEY REFERENCES internal.website (id) ON DELETE CASCADE,
|
||||
main_content TEXT NOT NULL CHECK (TRIM(main_content) != ''),
|
||||
last_modified_at TIMESTAMPTZ NOT NULL DEFAULT CLOCK_TIMESTAMP(),
|
||||
last_modified_by UUID REFERENCES internal.user (id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE VIEW api.legal_information WITH ( security_invoker = ON
|
||||
) AS
|
||||
SELECT
|
||||
website_id,
|
||||
main_content,
|
||||
last_modified_at,
|
||||
last_modified_by
|
||||
FROM
|
||||
internal.legal_information;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON internal.legal_information TO authenticated_user;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON api.legal_information TO authenticated_user;
|
||||
|
||||
ALTER TABLE internal.legal_information ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY view_legal_information ON internal.legal_information
|
||||
FOR SELECT
|
||||
USING (internal.user_has_website_access (website_id, 10));
|
||||
|
||||
CREATE POLICY update_legal_information ON internal.legal_information
|
||||
FOR UPDATE
|
||||
USING (internal.user_has_website_access (website_id, 30));
|
||||
|
||||
CREATE POLICY delete_legal_information ON internal.legal_information
|
||||
FOR DELETE
|
||||
USING (internal.user_has_website_access (website_id, 30));
|
||||
|
||||
CREATE POLICY insert_legal_information ON internal.legal_information
|
||||
FOR INSERT
|
||||
WITH CHECK (internal.user_has_website_access (website_id, 30));
|
||||
|
||||
-- migrate:down
|
||||
DROP POLICY insert_legal_information ON internal.legal_information;
|
||||
|
||||
DROP POLICY delete_legal_information ON internal.legal_information;
|
||||
|
||||
DROP POLICY update_legal_information ON internal.legal_information;
|
||||
|
||||
DROP POLICY view_legal_information ON internal.legal_information;
|
||||
|
||||
ALTER TABLE internal.legal_information DISABLE ROW LEVEL SECURITY;
|
||||
|
||||
DROP VIEW api.legal_information;
|
||||
|
||||
DROP TABLE internal.legal_information;
|
||||
|
||||
Reference in New Issue
Block a user