diff --git a/src/Sql/Auth/dbo/Stored Procedures/AuthRequest_ReadPendingByUserId.sql b/src/Sql/Auth/dbo/Stored Procedures/AuthRequest_ReadPendingByUserId.sql new file mode 100644 index 0000000000..d53270bf4d --- /dev/null +++ b/src/Sql/Auth/dbo/Stored Procedures/AuthRequest_ReadPendingByUserId.sql @@ -0,0 +1,21 @@ +CREATE PROCEDURE [dbo].[AuthRequest_ReadPendingByUserId] + @UserId UNIQUEIDENTIFIER, + @ExpirationMinutes INT +AS +BEGIN + SET NOCOUNT ON; + + ;WITH PendingRequests AS ( + SELECT + AR.*, + ROW_NUMBER() OVER (PARTITION BY RequestDeviceIdentifier ORDER BY CreationDate DESC) AS rn + FROM dbo.AuthRequestView AR + WHERE Type IN (0, 1) + AND AR.CreationDate >= DATEADD(MINUTE, -@ExpirationMinutes, GETUTCDATE()) + AND AR.UserId = @UserId + AND AR.Approved IS NULL + ) + SELECT PR.* + FROM PendingRequests PR + WHERE rn = 1; +END; diff --git a/util/Migrator/DbScripts/2025-06-04-00_AddReadPendingAuthRequestsByUserId.sql b/util/Migrator/DbScripts/2025-06-04-00_AddReadPendingAuthRequestsByUserId.sql new file mode 100644 index 0000000000..e5c66103ef --- /dev/null +++ b/util/Migrator/DbScripts/2025-06-04-00_AddReadPendingAuthRequestsByUserId.sql @@ -0,0 +1,22 @@ +-- 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.*, + ROW_NUMBER() OVER (PARTITION BY RequestDeviceIdentifier ORDER BY CreationDate DESC) AS rn + FROM dbo.AuthRequestView AR + WHERE Type IN (0, 1) + AND AR.CreationDate >= DATEADD(MINUTE, -@ExpirationMinutes, GETUTCDATE()) + AND AR.UserId = @UserId + AND AR.Approved IS NULL + ) + SELECT PR.* + FROM PendingRequests PR + WHERE rn = 1; +END;