mirror of
https://github.com/bitwarden/server
synced 2025-12-25 12:43:14 +00:00
[PM-23987] Fix saving to default collections by updating collection lookup (#6122)
* Refactor ICollectionRepository.GetManyByOrganizationIdAsync logic to include default user collections * Add stored procedure Collection_ReadSharedCollectionsByOrganizationId to retrieve collections by organization ID, excluding default user collections. * Add GetManySharedCollectionsByOrganizationIdAsync method to ICollectionRepository and its implementations to retrieve collections excluding default user collections. * Add unit test for GetManySharedCollectionsByOrganizationIdAsync method in CollectionRepositoryTests to verify retrieval of collections excluding default user collections. * Refactor controllers to use GetManySharedCollectionsByOrganizationIdAsync for retrieving shared collections * Update unit tests to use GetManySharedCollectionsByOrganizationIdAsync for verifying shared collections retrieval * Revert CiphersController.CanEditItemsInCollections to use GetManyByOrganizationIdAsync for retrieving organization collections * Update stored procedures to retrieve only DefaultUserCollection by modifying the WHERE clause in Collection_ReadSharedCollectionsByOrganizationId.sql and its corresponding migration script. * Update EF CollectionRepository.GetManySharedCollectionsByOrganizationIdAsync to filter collections by SharedCollection * Update OrganizationUserRepository.GetManyDetailsByOrganizationAsync_vNext to only include Shared collections * Update comments in stored procedure and migration script to clarify filtering for SharedCollections only
This commit is contained in:
@@ -9,6 +9,5 @@ BEGIN
|
||||
FROM
|
||||
[dbo].[CollectionView]
|
||||
WHERE
|
||||
[OrganizationId] = @OrganizationId AND
|
||||
[Type] != 1 -- Exclude DefaultUserCollection
|
||||
[OrganizationId] = @OrganizationId
|
||||
END
|
||||
@@ -0,0 +1,14 @@
|
||||
CREATE PROCEDURE [dbo].[Collection_ReadSharedCollectionsByOrganizationId]
|
||||
@OrganizationId UNIQUEIDENTIFIER
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
[dbo].[CollectionView]
|
||||
WHERE
|
||||
[OrganizationId] = @OrganizationId AND
|
||||
[Type] = 0 -- SharedCollections only
|
||||
END
|
||||
@@ -26,6 +26,8 @@ BEGIN
|
||||
SELECT cu.*
|
||||
FROM [dbo].[CollectionUser] cu
|
||||
INNER JOIN [dbo].[OrganizationUser] ou ON cu.OrganizationUserId = ou.Id
|
||||
WHERE ou.OrganizationId = @OrganizationId
|
||||
INNER JOIN [dbo].[Collection] c ON cu.CollectionId = c.Id
|
||||
WHERE ou.OrganizationId = @OrganizationId
|
||||
AND c.Type = 0 -- SharedCollections only
|
||||
END
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user