1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-01 08:02:49 -05:00

Fixes to bulk action sprocs

This commit is contained in:
Kyle Spearrin
2017-06-09 00:30:02 -04:00
parent d3499dce84
commit 90402b0802
2 changed files with 26 additions and 14 deletions

View File

@ -5,19 +5,20 @@ AS
BEGIN
SET NOCOUNT ON
;WITH [CTE] AS (
;WITH [IdsToDeleteCTE] AS (
SELECT
[Id],
[Edit]
[Id]
FROM
[dbo].[UserCipherDetails](@UserId)
WHERE
[Edit] = 1
AND [Id] IN (SELECT * FROM @Ids)
)
DELETE
FROM
[CTE]
[dbo].[Cipher]
WHERE
[Edit] = 1
AND [Id] IN (@Ids)
[Id] IN (SELECT * FROM [IdsToDeleteCTE])
EXEC [dbo].[User_BumpAccountRevisionDate] @UserId
-- TODO: What if some that were deleted were organization ciphers? Then bump by org ids.

View File

@ -6,21 +6,32 @@ AS
BEGIN
SET NOCOUNT ON
;WITH [CTE] AS (
DECLARE @UserIdKey VARCHAR(50) = CONCAT('"', @UserId, '"')
DECLARE @UserIdPath VARCHAR(50) = CONCAT('$.', @UserIdKey)
;WITH [IdsToMoveCTE] AS (
SELECT
[Id],
[Edit],
[FolderId]
[Id]
FROM
[dbo].[UserCipherDetails](@UserId)
WHERE
[Edit] = 1
AND [Id] IN (SELECT * FROM @Ids)
)
UPDATE
[CTE]
[dbo].[Cipher]
SET
[FolderId] = @FolderId
[Folders] =
CASE
WHEN @FolderId IS NOT NULL AND [Folders] IS NULL THEN
CONCAT('{', @UserIdKey, ':"', @FolderId, '"', '}')
WHEN @FolderId IS NOT NULL THEN
JSON_MODIFY([Folders], @UserIdPath, CAST(@FolderId AS VARCHAR(50)))
ELSE
JSON_MODIFY([Folders], @UserIdPath, NULL)
END
WHERE
[Edit] = 1
AND [Id] IN (@Ids)
[Id] IN (SELECT * FROM [IdsToMoveCTE])
EXEC [dbo].[User_BumpAccountRevisionDate] @UserId
-- TODO: What if some that were updated were organization ciphers? Then bump by org ids.