You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
218 lines
4.9 KiB
218 lines
4.9 KiB
-- Create Auth Request table |
|
IF OBJECT_ID('[dbo].[AuthRequest]') IS NOT NULL |
|
BEGIN |
|
DROP TABLE [dbo].[AuthRequest] |
|
END |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest]') IS NULL |
|
BEGIN |
|
CREATE TABLE [dbo].[AuthRequest] ( |
|
[Id] UNIQUEIDENTIFIER NOT NULL, |
|
[UserId] UNIQUEIDENTIFIER NOT NULL, |
|
[Type] SMALLINT NOT NULL, |
|
[RequestDeviceIdentifier] NVARCHAR(50) NOT NULL, |
|
[RequestDeviceType] SMALLINT NOT NULL, |
|
[RequestIpAddress] VARCHAR(50) NOT NULL, |
|
[RequestFingerprint] VARCHAR(MAX) NOT NULL, |
|
[ResponseDeviceId] UNIQUEIDENTIFIER NULL, |
|
[AccessCode] VARCHAR(25) NOT NULL, |
|
[PublicKey] VARCHAR(MAX) NOT NULL, |
|
[Key] VARCHAR(MAX) NULL, |
|
[MasterPasswordHash] VARCHAR(MAX) NULL, |
|
[CreationDate] DATETIME2 (7) NOT NULL, |
|
[ResponseDate] DATETIME2 (7) NULL, |
|
[AuthenticationDate] DATETIME2 (7) NULL, |
|
CONSTRAINT [PK_AuthRequest] PRIMARY KEY CLUSTERED ([Id] ASC), |
|
CONSTRAINT [FK_AuthRequest_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id]), |
|
CONSTRAINT [FK_AuthRequest_ResponseDevice] FOREIGN KEY ([ResponseDeviceId]) REFERENCES [dbo].[Device] ([Id]) |
|
); |
|
END |
|
GO |
|
|
|
-- Create View |
|
IF EXISTS(SELECT * FROM sys.views WHERE [Name] = 'AuthRequestView') |
|
BEGIN |
|
DROP VIEW [dbo].[AuthRequestView] |
|
END |
|
GO |
|
|
|
CREATE VIEW [dbo].[AuthRequestView] |
|
AS |
|
SELECT |
|
* |
|
FROM |
|
[dbo].[AuthRequest] |
|
GO |
|
|
|
-- Auth Request CRUD sprocs |
|
IF OBJECT_ID('[dbo].[AuthRequest_Create]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_Create] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_Create] |
|
@Id UNIQUEIDENTIFIER OUTPUT, |
|
@UserId UNIQUEIDENTIFIER, |
|
@Type TINYINT, |
|
@RequestDeviceIdentifier NVARCHAR(50), |
|
@RequestDeviceType TINYINT, |
|
@RequestIpAddress VARCHAR(50), |
|
@RequestFingerprint VARCHAR(MAX), |
|
@ResponseDeviceId UNIQUEIDENTIFIER, |
|
@AccessCode VARCHAR(25), |
|
@PublicKey VARCHAR(MAX), |
|
@Key VARCHAR(MAX), |
|
@MasterPasswordHash VARCHAR(MAX), |
|
@CreationDate DATETIME2(7), |
|
@ResponseDate DATETIME2(7), |
|
@AuthenticationDate DATETIME2(7) |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
INSERT INTO [dbo].[AuthRequest] |
|
( |
|
[Id], |
|
[UserId], |
|
[Type], |
|
[RequestDeviceIdentifier], |
|
[RequestDeviceType], |
|
[RequestIpAddress], |
|
[RequestFingerprint], |
|
[ResponseDeviceId], |
|
[AccessCode], |
|
[PublicKey], |
|
[Key], |
|
[MasterPasswordHash], |
|
[CreationDate], |
|
[ResponseDate], |
|
[AuthenticationDate] |
|
) |
|
VALUES |
|
( |
|
@Id, |
|
@UserId, |
|
@Type, |
|
@RequestDeviceIdentifier, |
|
@RequestDeviceType, |
|
@RequestIpAddress, |
|
@RequestFingerprint, |
|
@ResponseDeviceId, |
|
@AccessCode, |
|
@PublicKey, |
|
@Key, |
|
@MasterPasswordHash, |
|
@CreationDate, |
|
@ResponseDate, |
|
@AuthenticationDate |
|
) |
|
END |
|
GO |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest_Update]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_Update] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_Update] |
|
@Id UNIQUEIDENTIFIER OUTPUT, |
|
@ResponseDeviceId UNIQUEIDENTIFIER, |
|
@Key VARCHAR(MAX), |
|
@MasterPasswordHash VARCHAR(MAX), |
|
@ResponseDate DATETIME2(7), |
|
@AuthenticationDate DATETIME2(7) |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
UPDATE |
|
[dbo].[AuthRequest] |
|
SET |
|
[ResponseDeviceId] = @ResponseDeviceId, |
|
[Key] = @Key, |
|
[MasterPasswordHash] = @MasterPasswordHash, |
|
[ResponseDate] = @ResponseDate, |
|
[AuthenticationDate] = @AuthenticationDate |
|
WHERE |
|
[Id] = @Id |
|
END |
|
GO |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest_ReadById]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_ReadById] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_ReadById] |
|
@Id UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SELECT |
|
* |
|
FROM |
|
[dbo].[AuthRequestView] |
|
WHERE |
|
[Id] = @Id |
|
END |
|
GO |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest_DeleteById]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_DeleteById] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_DeleteById] |
|
@Id UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
DELETE |
|
FROM |
|
[dbo].[AuthRequest] |
|
WHERE |
|
[Id] = @Id |
|
END |
|
GO |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest_DeleteIfExpired]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_DeleteIfExpired] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_DeleteIfExpired] |
|
AS |
|
BEGIN |
|
SET NOCOUNT OFF |
|
DELETE FROM [dbo].[AuthRequest] WHERE [CreationDate] < DATEADD(minute, -15, GETUTCDATE()); |
|
END |
|
GO |
|
|
|
IF OBJECT_ID('[dbo].[AuthRequest_ReadByUserId]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[AuthRequest_ReadByUserId] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[AuthRequest_ReadByUserId] |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
|
|
SELECT |
|
* |
|
FROM |
|
[dbo].[AuthRequestView] |
|
WHERE |
|
[UserId] = @UserId |
|
END |
|
GO
|
|
|