diff --git a/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionGroups.sql b/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionGroups.sql index 61c2a757da..5ad58f2bb0 100644 --- a/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionGroups.sql +++ b/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionGroups.sql @@ -1,10 +1,10 @@ --- Step 1: Retrieve relevant data from [dbo].[Group] where [AccessAll] is 1 +-- Step 1: Retrieve Groups with [AccessAll] permission SELECT [Id] AS [GroupId], [OrganizationId] INTO #TempGroup FROM [dbo].[Group] WHERE [AccessAll] = 1; --- Step 2: Declare variables for group and organization IDs +-- Step 2: Declare variables for GroupId and OrganizationId DECLARE @GroupId UNIQUEIDENTIFIER; DECLARE @OrganizationId UNIQUEIDENTIFIER; @@ -33,7 +33,7 @@ UPDATE SET INSERT ([CollectionId], [GroupId], [ReadOnly], [HidePasswords], [Manage]) VALUES (source.[CollectionId], source.[GroupId], 0, 0, 1); --- Step 6: Fetch the next group and organization IDs +-- Step 6: Fetch the next GroupId and OrganizationId FETCH NEXT FROM GroupCursor INTO @GroupId, @OrganizationId; END; diff --git a/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionUsers.sql b/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionUsers.sql index 9901e19fc5..757080136c 100644 --- a/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionUsers.sql +++ b/util/Migrator/DbScripts/2023-11-10_00_AccessAllCollectionUsers.sql @@ -1,10 +1,10 @@ --- Step 1: Retrieve relevant data from [dbo].[OrganizationUser] where [AccessAll] is 1 +-- Step 1: Retrieve OrganizationUsers with [AccessAll] permission SELECT [Id] AS [OrganizationUserId], [OrganizationId] INTO #TempOrgUser FROM [dbo].[OrganizationUser] WHERE [AccessAll] = 1; --- Step 2: Declare variables for organization user and organization ID +-- Step 2: Declare variables for OrganizationUserId and OrganizationId DECLARE @OrgUserId UNIQUEIDENTIFIER; DECLARE @OrganizationId UNIQUEIDENTIFIER; @@ -22,7 +22,7 @@ WHILE @@FETCH_STATUS = 0 BEGIN -- Step 5: Use MERGE to insert or update into [dbo].[CollectionUser] for each [dbo].[Collection] entry MERGE INTO [dbo].[CollectionUser] AS target - USING (SELECT C.[Id] AS [CollectionId], @OrgUserId AS [OrganizationUserId] FROM [dbo].[Collection] C WHERE C.[OrganizationId] = @OrganizationId) AS source -- Adjusted to use OrganizationId + USING (SELECT C.[Id] AS [CollectionId], @OrgUserId AS [OrganizationUserId] FROM [dbo].[Collection] C WHERE C.[OrganizationId] = @OrganizationId) AS source ON (target.[CollectionId] = source.[CollectionId] AND target.[OrganizationUserId] = source.[OrganizationUserId]) WHEN MATCHED THEN UPDATE SET @@ -33,7 +33,7 @@ UPDATE SET INSERT ([CollectionId], [OrganizationUserId], [ReadOnly], [HidePasswords], [Manage]) VALUES (source.[CollectionId], source.[OrganizationUserId], 0, 0, 1); --- Step 6: Fetch the next organization user and organization ID +-- Step 6: Fetch the next OrganizationUserId and OrganizationId FETCH NEXT FROM OrgUserCursor INTO @OrgUserId, @OrganizationId; END; diff --git a/util/Migrator/DbScripts/2023-11-10_00_ManagersEditAssignedCollectionUsers.sql b/util/Migrator/DbScripts/2023-11-10_00_ManagersEditAssignedCollectionUsers.sql new file mode 100644 index 0000000000..41a048889b --- /dev/null +++ b/util/Migrator/DbScripts/2023-11-10_00_ManagersEditAssignedCollectionUsers.sql @@ -0,0 +1,12 @@ +-- Update [dbo].[CollectionUser] with [Manage] = 1 for all users with Manager role or 'EditAssignedCollections' permission +UPDATE cu +SET cu.[ReadOnly] = 0, + cu.[HidePasswords] = 0, + cu.[Manage] = 1 +FROM [dbo].[CollectionUser] cu +JOIN [dbo].[Collection] c + ON cu.[CollectionId] = c.[Id] +JOIN [dbo].[OrganizationUser] ou + ON cu.[OrganizationUserId] = ou.[Id] +WHERE (ou.[Type] = 3 OR (ou.[Permissions] IS NOT NULL AND + ISJSON(ou.[Permissions]) > 0 AND JSON_VALUE(ou.[Permissions], '$.editAssignedCollections') = 'true'))