-- Dedicated permissions for the Sag module. -- Existing group access is preserved by copying equivalent ticket permissions. INSERT INTO permissions (code, description, category) VALUES ('cases.view', 'Se sager', 'cases'), ('cases.create', 'Opret sager', 'cases'), ('cases.edit', 'Redigér sager, relationer, filer og reminders', 'cases'), ('cases.delete', 'Slet sager', 'cases') ON CONFLICT (code) DO NOTHING; WITH permission_map(case_code, ticket_code) AS ( VALUES ('cases.view', 'tickets.view'), ('cases.create', 'tickets.create'), ('cases.edit', 'tickets.edit'), ('cases.delete', 'tickets.delete') ) INSERT INTO group_permissions (group_id, permission_id) SELECT DISTINCT gp.group_id, case_permission.id FROM group_permissions gp JOIN permissions ticket_permission ON ticket_permission.id = gp.permission_id JOIN permission_map mapping ON mapping.ticket_code = ticket_permission.code JOIN permissions case_permission ON case_permission.code = mapping.case_code ON CONFLICT DO NOTHING;