mirror of
https://github.com/bitwarden/server
synced 2025-12-30 15:14:02 +00:00
49 lines
1.2 KiB
Transact-SQL
49 lines
1.2 KiB
Transact-SQL
CREATE PROCEDURE [dbo].[CollectionCipher_UpdateCollectionsAdmin]
|
|
@CipherId UNIQUEIDENTIFIER,
|
|
@OrganizationId UNIQUEIDENTIFIER,
|
|
@CollectionIds AS [dbo].[GuidIdArray] READONLY
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
;WITH [AvailableCollectionsCTE] AS(
|
|
SELECT
|
|
Id
|
|
FROM
|
|
[dbo].[Collection]
|
|
WHERE
|
|
OrganizationId = @OrganizationId
|
|
),
|
|
[CollectionCiphersCTE] AS(
|
|
SELECT
|
|
[CollectionId],
|
|
[CipherId]
|
|
FROM
|
|
[dbo].[CollectionCipher]
|
|
WHERE
|
|
[CipherId] = @CipherId
|
|
)
|
|
MERGE
|
|
[CollectionCiphersCTE] AS [Target]
|
|
USING
|
|
@CollectionIds AS [Source]
|
|
ON
|
|
[Target].[CollectionId] = [Source].[Id]
|
|
AND [Target].[CipherId] = @CipherId
|
|
WHEN NOT MATCHED BY TARGET
|
|
AND [Source].[Id] IN (SELECT [Id] FROM [AvailableCollectionsCTE]) THEN
|
|
INSERT VALUES
|
|
(
|
|
[Source].[Id],
|
|
@CipherId
|
|
)
|
|
WHEN NOT MATCHED BY SOURCE
|
|
AND [Target].[CipherId] = @CipherId THEN
|
|
DELETE
|
|
;
|
|
|
|
IF @OrganizationId IS NOT NULL
|
|
BEGIN
|
|
EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationId] @OrganizationId
|
|
END
|
|
END |