1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-26 21:58:48 -05:00
bitwarden/util/Migrator/DbScripts/2025-06-04-00_AddReadPendingAuthRequestsByUserId.sql
2025-06-25 17:18:31 -04:00

48 lines
1.4 KiB
Transact-SQL

-- Adds a stored procedure to read pending authentication requests by user ID.
CREATE OR ALTER PROCEDURE [dbo].[AuthRequest_ReadPendingByUserId]
@UserId UNIQUEIDENTIFIER,
@ExpirationMinutes INT
AS
BEGIN
SET NOCOUNT ON;
;
WITH
PendingRequests
AS
(
SELECT
AR.*,
D.Id AS DeviceId,
ROW_NUMBER() OVER (PARTITION BY AR.RequestDeviceIdentifier ORDER BY AR.CreationDate DESC) AS rn
FROM dbo.AuthRequestView AR
LEFT JOIN Device D ON AR.RequestDeviceIdentifier = D.Identifier
AND D.UserId = AR.UserId
WHERE AR.Type IN (0, 1) -- 0 = AuthenticateAndUnlock, 1 = Unlock
AND AR.CreationDate >= DATEADD(MINUTE, -@ExpirationMinutes, GETUTCDATE())
AND AR.UserId = @UserId
)
SELECT
PR.Id,
PR.UserId,
PR.OrganizationId,
PR.Type,
PR.RequestDeviceIdentifier,
PR.RequestDeviceType,
PR.RequestIpAddress,
PR.RequestCountryName,
PR.ResponseDeviceId,
PR.AccessCode,
PR.PublicKey,
PR.[Key],
PR.MasterPasswordHash,
PR.Approved,
PR.CreationDate,
PR.ResponseDate,
PR.AuthenticationDate,
PR.DeviceId
FROM PendingRequests PR
WHERE rn = 1
AND PR.Approved IS NULL;
END;