From 76664c8427aff66ce71ad332458b780cffd0d66a Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 11 May 2017 15:20:58 -0400 Subject: [PATCH] fixes to can edit sproc --- .../Cipher_ReadCanEditByIdUserId.sql | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/src/Sql/dbo/Stored Procedures/Cipher_ReadCanEditByIdUserId.sql b/src/Sql/dbo/Stored Procedures/Cipher_ReadCanEditByIdUserId.sql index 48765d179b..715f06db75 100644 --- a/src/Sql/dbo/Stored Procedures/Cipher_ReadCanEditByIdUserId.sql +++ b/src/Sql/dbo/Stored Procedures/Cipher_ReadCanEditByIdUserId.sql @@ -5,11 +5,12 @@ AS BEGIN SET NOCOUNT ON - SELECT - ( - SELECT TOP 1 + DECLARE @CanEdit BIT + + ;WITH [CTE] AS ( + SELECT CASE - WHEN C.[UserId] IS NOT NULL OR OU.[AccessAll] = 1 OR CU.[ReadOnly] = 0 THEN 1 + WHEN C.[UserId] IS NOT NULL OR OU.[AccessAll] = 1 OR CU.[ReadOnly] = 0 OR G.[AccessAll] = 1 OR CG.[ReadOnly] = 0 THEN 1 ELSE 0 END [Edit] FROM @@ -22,6 +23,12 @@ BEGIN [dbo].[CollectionCipher] CC ON C.[UserId] IS NULL AND OU.[AccessAll] = 0 AND CC.[CipherId] = C.[Id] LEFT JOIN [dbo].[CollectionUser] CU ON CU.[CollectionId] = CC.[CollectionId] AND CU.[OrganizationUserId] = OU.[Id] + LEFT JOIN + [dbo].[GroupUser] GU ON C.[UserId] IS NULL AND CU.[CollectionId] IS NULL AND OU.[AccessAll] = 0 AND GU.[OrganizationUserId] = OU.[Id] + LEFT JOIN + [dbo].[Group] G ON G.[Id] = GU.[GroupId] + LEFT JOIN + [dbo].[CollectionGroup] CG ON G.[AccessAll] = 0 AND CG.[CollectionId] = CC.[CollectionId] AND CG.[GroupId] = GU.[GroupId] WHERE C.Id = @Id AND ( @@ -30,10 +37,24 @@ BEGIN C.[UserId] IS NULL AND OU.[Status] = 2 -- 2 = Confirmed AND O.[Enabled] = 1 - AND (OU.[AccessAll] = 1 OR CU.[CollectionId] IS NOT NULL) + AND ( + OU.[AccessAll] = 1 + OR CU.[CollectionId] IS NOT NULL + OR G.[AccessAll] = 1 + OR CG.[CollectionId] IS NOT NULL + ) ) ) - ORDER BY - [Edit] DESC ) + SELECT + @CanEdit = CASE + WHEN COUNT(1) > 0 THEN 1 + ELSE 0 + END + FROM + [CTE] + WHERE + [Edit] = 1 + + SELECT @CanEdit END \ No newline at end of file