1
0
mirror of https://github.com/bitwarden/server synced 2026-01-30 16:23:37 +00:00
Files
server/util/Migrator/DbScripts/2026-01-23_00_AddDeleteManyEmergencyAccess.sql

42 lines
1.0 KiB
Transact-SQL

CREATE OR ALTER PROCEDURE [dbo].[EmergencyAccess_DeleteManyById]
@EmergencyAccessIds [dbo].[GuidIdArray] READONLY
AS
BEGIN
SET NOCOUNT ON
-- track GranteeIds for bumping revision date prior to deletion
DECLARE @GranteeIds AS TABLE (UserId UNIQUEIDENTIFIER)
-- this matches the logic in User_BumpAccountRevisionDateByEmergencyAccessGranteeId
INSERT INTO @GranteeIds
(UserId)
SELECT DISTINCT GranteeId
FROM
[dbo].[EmergencyAccess] EA
WHERE EA.Id IN (SELECT Id
FROM @EmergencyAccessIds
WHERE EA.[Status] = 2 )
DECLARE @BatchSize INT = 100
-- Delete EmergencyAccess Records
WHILE @BatchSize > 0
BEGIN
DELETE TOP(@BatchSize) EA
FROM
[dbo].[EmergencyAccess] EA
INNER JOIN
@EmergencyAccessIds EAI ON EAI.Id = EA.Id
SET @BatchSize = @@ROWCOUNT
END
-- Bump AccountRevisionDate for affected users after deletions
Exec [dbo].[User_BumpManyAccountRevisionDates]
(
SELECT [UserId]
FROM @GranteeIds
)
END
GO