Files
server/util/PostgresMigrations/HelperScripts/2024-01-12_02_ManagersEditAssignedCollectionUsers.psql

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

25 lines
1.2 KiB
Plaintext
Raw Normal View History

2023-12-20 11:57:36 +00:00
-- Update `CollectionUsers` with `Manage` = 1 for all users with Manager role or 'EditAssignedCollections' permission
2023-12-17 21:26:12 +00:00
UPDATE "CollectionUsers" cu
2023-12-20 11:57:36 +00:00
SET
"ReadOnly" = false,
2023-12-17 21:26:12 +00:00
"HidePasswords" = false,
"Manage" = true
2023-12-20 11:57:36 +00:00
FROM "OrganizationUser" ou
2023-12-17 21:26:12 +00:00
WHERE cu."OrganizationUserId" = ou."Id"
2023-12-20 11:57:36 +00:00
AND (ou."Type" = 3 OR
2023-12-17 21:26:12 +00:00
(ou."Permissions" IS NOT NULL AND
2023-12-20 11:57:36 +00:00
((ou."Permissions"::text)::jsonb->>'editAssignedCollections') = 'true'));
-- Insert rows into CollectionUsers for Managers and users with 'EditAssignedCollections' permission assigned to groups with collection access
INSERT INTO "CollectionUsers" ("CollectionId", "OrganizationUserId", "ReadOnly", "HidePasswords", "Manage")
SELECT cg."CollectionId", ou."Id", false, false, true
FROM "CollectionGroups" cg
INNER JOIN "GroupUser" gu ON cg."GroupId" = gu."GroupId"
INNER JOIN "OrganizationUser" ou ON gu."OrganizationUserId" = ou."Id"
WHERE (ou."Type" = 3 OR
(ou."Permissions" IS NOT NULL AND
((ou."Permissions"::text)::jsonb->>'editAssignedCollections') = 'true'))
AND NOT EXISTS (
SELECT 1 FROM "CollectionUsers" cu
WHERE cu."CollectionId" = cg."CollectionId" AND cu."OrganizationUserId" = ou."Id");