You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.8 KiB
124 lines
2.8 KiB
-- We were aggregating CollectionGroup permissions using MIN([Manage]) instead of MAX. |
|
-- If the user is a member of multiple groups with overlapping collection permissions, they should get the most |
|
-- generous permissions, not the least. This is consistent with ReadOnly and HidePasswords columns. |
|
-- Updating both current and V2 sprocs out of caution and because they still need to be reviewed/cleaned up. |
|
|
|
-- Collection_ReadByIdUserId |
|
CREATE OR ALTER PROCEDURE [dbo].[Collection_ReadByIdUserId] |
|
@Id UNIQUEIDENTIFIER, |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
SELECT |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId, |
|
MIN([ReadOnly]) AS [ReadOnly], |
|
MIN([HidePasswords]) AS [HidePasswords], |
|
MAX([Manage]) AS [Manage] |
|
FROM |
|
[dbo].[UserCollectionDetails](@UserId) |
|
WHERE |
|
[Id] = @Id |
|
GROUP BY |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId |
|
END |
|
GO; |
|
|
|
-- Collection_ReadByIdUserId_V2 |
|
CREATE OR ALTER PROCEDURE [dbo].[Collection_ReadByIdUserId_V2] |
|
@Id UNIQUEIDENTIFIER, |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
SELECT |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId, |
|
MIN([ReadOnly]) AS [ReadOnly], |
|
MIN([HidePasswords]) AS [HidePasswords], |
|
MAX([Manage]) AS [Manage] |
|
FROM |
|
[dbo].[UserCollectionDetails_V2](@UserId) |
|
WHERE |
|
[Id] = @Id |
|
GROUP BY |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId |
|
END |
|
GO; |
|
|
|
-- Collection_ReadByUserId |
|
CREATE OR ALTER PROCEDURE [dbo].[Collection_ReadByUserId] |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SELECT |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId, |
|
MIN([ReadOnly]) AS [ReadOnly], |
|
MIN([HidePasswords]) AS [HidePasswords], |
|
MAX([Manage]) AS [Manage] |
|
FROM |
|
[dbo].[UserCollectionDetails](@UserId) |
|
GROUP BY |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId |
|
END |
|
GO; |
|
|
|
-- Collection_ReadByUserId_V2 |
|
CREATE OR ALTER PROCEDURE [dbo].[Collection_ReadByUserId_V2] |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SELECT |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId, |
|
MIN([ReadOnly]) AS [ReadOnly], |
|
MIN([HidePasswords]) AS [HidePasswords], |
|
MAX([Manage]) AS [Manage] |
|
FROM |
|
[dbo].[UserCollectionDetails_V2](@UserId) |
|
GROUP BY |
|
Id, |
|
OrganizationId, |
|
[Name], |
|
CreationDate, |
|
RevisionDate, |
|
ExternalId |
|
END |
|
GO;
|
|
|