mirror of
https://github.com/bitwarden/server.git
synced 2024-11-24 12:35:25 +01:00
145071d499
* Removed Scripts folders * Removed .csproj references. * Added back HelperScripts * Added back additional helper scripts. * Fixed extra ItemGroup
43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
CREATE OR REPLACE FUNCTION updatePermissionsJson(permissions jsonb) returns jsonb LANGUAGE plpgsql AS $$
|
|
DECLARE manageAllCollections jsonb := COALESCE(jsonb_extract_path(permissions, 'manageAllCollections'), 'false');
|
|
DECLARE manageAssignedCollections jsonb := COALESCE(jsonb_extract_path(permissions, 'manageAssignedCollections'), 'false');
|
|
|
|
DECLARE createNewCollections jsonb := COALESCE(jsonb_extract_path(permissions, 'createNewCollections'), manageAllCollections);
|
|
DECLARE editAnyCollection jsonb := COALESCE(jsonb_extract_path(permissions, 'editAnyCollection'), manageAllCollections);
|
|
DECLARE deleteAnyCollection jsonb := COALESCE(jsonb_extract_path(permissions, 'deleteAnyCollection'), manageAllCollections);
|
|
|
|
DECLARE editAssignedCollections jsonb := COALESCE(jsonb_extract_path(permissions, 'editAssignedCollections'), manageAssignedCollections);
|
|
DECLARE deleteAssignedCollections jsonb := COALESCE(jsonb_extract_path(permissions, 'deleteAssignedCollections'), manageAssignedCollections);
|
|
|
|
BEGIN
|
|
RETURN
|
|
jsonb_set(
|
|
jsonb_set(
|
|
jsonb_set(
|
|
jsonb_set(
|
|
jsonb_set(
|
|
permissions,
|
|
'{createNewCollections}',
|
|
createNewCollections
|
|
),
|
|
'{editAnyCollection}',
|
|
editAnyCollection
|
|
),
|
|
'{deleteAnyCollection}',
|
|
deleteAnyCollection
|
|
),
|
|
'{editAssignedCollections}',
|
|
editAssignedCollections
|
|
),
|
|
'{deleteAssignedCollections}',
|
|
deleteAssignedCollections
|
|
);
|
|
END
|
|
$$;
|
|
|
|
UPDATE "OrganizationUser"
|
|
SET "Permissions" = updatePermissionsJson("Permissions"::jsonb)::text
|
|
WHERE "Permissions" IS NOT NULL;
|
|
|
|
DROP FUNCTION updatePermissionsJson(jsonb);
|