mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 10:42:08 +00:00
Update user credential stored procs
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
CREATE OR ALTER PROCEDURE dbo.USP_AddUpdateUserCredential(
|
CREATE OR ALTER PROCEDURE dbo.USP_RotateUserCredential(
|
||||||
@UserAccountId UNIQUEIDENTIFIER,
|
@UserAccountId UNIQUEIDENTIFIER,
|
||||||
@Hash NVARCHAR(MAX)
|
@Hash NVARCHAR(MAX)
|
||||||
)
|
)
|
||||||
@@ -9,25 +9,22 @@ BEGIN
|
|||||||
|
|
||||||
BEGIN TRANSACTION;
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
IF NOT EXISTS (
|
IF NOT EXISTS (SELECT 1
|
||||||
SELECT 1
|
FROM dbo.UserAccount
|
||||||
FROM dbo.UserAccount
|
WHERE UserAccountID = @UserAccountId)
|
||||||
WHERE UserAccountID = @UserAccountId
|
BEGIN
|
||||||
)
|
ROLLBACK TRANSACTION;
|
||||||
THROW 50001, 'UserAccountID does not exist.', 1;
|
END
|
||||||
|
|
||||||
|
|
||||||
-- invalidate old credentials
|
-- invalidate all other credentials -- set them to revoked
|
||||||
UPDATE dbo.UserCredential
|
UPDATE dbo.UserCredential
|
||||||
SET IsRevoked = 1,
|
SET IsRevoked = 1,
|
||||||
RevokedAt = GETDATE()
|
RevokedAt = GETDATE()
|
||||||
WHERE UserAccountId = @UserAccountId
|
WHERE UserAccountId = @UserAccountId;
|
||||||
AND IsRevoked = 0;
|
|
||||||
|
|
||||||
INSERT INTO dbo.UserCredential
|
INSERT INTO dbo.UserCredential
|
||||||
(UserAccountId, Hash)
|
(UserAccountId, Hash)
|
||||||
VALUES
|
VALUES (@UserAccountId, @Hash);
|
||||||
(@UserAccountId, @Hash);
|
|
||||||
|
|
||||||
COMMIT TRANSACTION;
|
COMMIT TRANSACTION;
|
||||||
END;
|
END;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
CREATE OR ALTER PROCEDURE dbo.USP_GetUserCredentialByUserAccountId(
|
CREATE OR ALTER PROCEDURE dbo.USP_GetActiveUserCredentialByUserAccountId(
|
||||||
@UserAccountId UNIQUEIDENTIFIER
|
@UserAccountId UNIQUEIDENTIFIER
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
CREATE OR ALTER PROCEDURE dbo.USP_InvalidateUserCredential(
|
||||||
|
@UserAccountId UNIQUEIDENTIFIER
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1
|
||||||
|
FROM dbo.UserAccount
|
||||||
|
WHERE UserAccountID = @UserAccountId)
|
||||||
|
ROLLBACK TRANSACTION
|
||||||
|
|
||||||
|
|
||||||
|
-- invalidate all other credentials by setting them to revoked
|
||||||
|
UPDATE dbo.UserCredential
|
||||||
|
SET IsRevoked = 1,
|
||||||
|
RevokedAt = GETDATE()
|
||||||
|
WHERE UserAccountId = @UserAccountId AND IsRevoked != 1;
|
||||||
|
|
||||||
|
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
END;
|
||||||
@@ -12,3 +12,5 @@ public class UserAccount
|
|||||||
public DateTime DateOfBirth { get; set; }
|
public DateTime DateOfBirth { get; set; }
|
||||||
public byte[]? Timer { get; set; }
|
public byte[]? Timer { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user