29 lines
1.4 KiB
SQL
29 lines
1.4 KiB
SQL
-- Add tenders module permissions to all positions that have crm or admin access.
|
|
-- Safe to run multiple times (skips if already exists).
|
|
-- Run on server: docker-compose exec -T postgres psql -U postgres -d mind14_crm -f - < backend/prisma/add-tenders-permissions.sql
|
|
-- Or from backend: npx prisma db execute --file prisma/add-tenders-permissions.sql
|
|
|
|
-- Tenders resource: read, create, update, delete
|
|
INSERT INTO position_permissions (id, "positionId", module, resource, actions, "createdAt", "updatedAt")
|
|
SELECT gen_random_uuid(), sub."positionId", 'tenders', 'tenders', '["read","create","update","delete"]'::jsonb, NOW(), NOW()
|
|
FROM (
|
|
SELECT DISTINCT pp."positionId" FROM position_permissions pp
|
|
WHERE pp.module IN ('crm', 'admin')
|
|
) sub
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM position_permissions pp2
|
|
WHERE pp2."positionId" = sub."positionId" AND pp2.module = 'tenders' AND pp2.resource = 'tenders'
|
|
);
|
|
|
|
-- Directives resource: read, create, update
|
|
INSERT INTO position_permissions (id, "positionId", module, resource, actions, "createdAt", "updatedAt")
|
|
SELECT gen_random_uuid(), sub."positionId", 'tenders', 'directives', '["read","create","update"]'::jsonb, NOW(), NOW()
|
|
FROM (
|
|
SELECT DISTINCT pp."positionId" FROM position_permissions pp
|
|
WHERE pp.module IN ('crm', 'admin')
|
|
) sub
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM position_permissions pp2
|
|
WHERE pp2."positionId" = sub."positionId" AND pp2.module = 'tenders' AND pp2.resource = 'directives'
|
|
);
|