1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-03 00:52:49 -05:00

refactored data storage to use cipher table. added history table and insert triggers.

This commit is contained in:
Kyle Spearrin
2016-05-21 17:16:22 -04:00
parent 8137847485
commit 3fdb0fcf67
56 changed files with 422 additions and 646 deletions

View File

@ -76,7 +76,7 @@
<Build Include="dbo\Stored Procedures\Cipher_ReadById.sql" />
<Build Include="dbo\Stored Procedures\Cipher_Update.sql" />
<Build Include="dbo\Stored Procedures\History_ReadById.sql" />
<Build Include="dbo\Stored Procedures\History_Create.sql" />
<Build Include="dbo\Stored Procedures\Cipher_ReadByTypeUserId.sql" />
<Build Include="dbo\Stored Procedures\User_ReadById.sql" />
<Build Include="dbo\Stored Procedures\User_ReadByEmail.sql" />
<Build Include="dbo\Stored Procedures\User_DeleteById.sql" />

View File

@ -8,6 +8,8 @@
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[Cipher]
(
[Id],

View File

@ -2,6 +2,8 @@
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
BEGIN TRANSACTION Cipher_DeleteById
UPDATE

View File

@ -2,6 +2,8 @@
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM

View File

@ -0,0 +1,15 @@
CREATE PROCEDURE [dbo].[Cipher_ReadByTypeUserId]
@Type TINYINT,
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM
[dbo].[CipherView]
WHERE
[Type] = @Type
AND [UserId] = @UserId
END

View File

@ -2,6 +2,8 @@
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM

View File

@ -8,6 +8,8 @@
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[Cipher]
SET

View File

@ -1,22 +0,0 @@
CREATE PROCEDURE [dbo].[History_Create]
@UserId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER,
@Event TINYINT,
@Date DATETIME2(7)
AS
BEGIN
INSERT INTO [dbo].[History]
(
[UserId],
[CipherId],
[Event],
[Date]
)
VALUES
(
@UserId,
@CipherId,
@Event,
@Date
)
END

View File

@ -2,6 +2,8 @@
@Id BIGINT
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM

View File

@ -14,6 +14,8 @@
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[User]
(
[Id],

View File

@ -2,6 +2,8 @@
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
BEGIN TRANSACTION User_DeleteById
DELETE

View File

@ -2,6 +2,8 @@
@Email NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM

View File

@ -2,6 +2,8 @@
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM

View File

@ -14,6 +14,8 @@
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[User]
SET

View File

@ -7,6 +7,8 @@
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[User]
SET

View File

@ -22,40 +22,75 @@ CREATE TRIGGER [dbo].[Cipher_Inserted]
ON [dbo].[Cipher] AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
DECLARE @UserId UNIQUEIDENTIFIER = (SELECT [UserId] FROM INSERTED)
DECLARE @CipherId UNIQUEIDENTIFIER = (SELECT [Id] FROM INSERTED)
DECLARE @Date DATETIME2(7) = (SELECT [CreationDate] FROM INSERTED)
EXEC [dbo].[History_Create] @UserId, @CipherId, 0 /* Insert */, @Date
END
DECLARE @Count INT = (SELECT COUNT(1) FROM INSERTED)
IF @Count = 0 RETURN
SET NOCOUNT ON
INSERT INTO [dbo].[History]
(
[UserId],
[CipherId],
[Event],
[Date]
)
SELECT
[UserId],
[Id],
0, --Insert
[CreationDate]
FROM
INSERTED
END
GO
CREATE TRIGGER [dbo].[Cipher_Updated]
ON [dbo].[Cipher] AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON
DECLARE @UserId UNIQUEIDENTIFIER = (SELECT [UserId] FROM INSERTED)
DECLARE @CipherId UNIQUEIDENTIFIER = (SELECT [Id] FROM INSERTED)
DECLARE @Date DATETIME2(7) = (SELECT [RevisionDate] FROM INSERTED)
EXEC [dbo].[History_Create] @UserId, @CipherId, 1 /* Update */, @Date
END
DECLARE @Count INT = (SELECT COUNT(1) FROM INSERTED)
IF @Count = 0 RETURN
SET NOCOUNT ON
INSERT INTO [dbo].[History]
(
[UserId],
[CipherId],
[Event],
[Date]
)
SELECT
[UserId],
[Id],
1, --Update
[RevisionDate]
FROM
INSERTED
END
GO
CREATE TRIGGER [dbo].[Cipher_Deleted]
ON [dbo].[Cipher] AFTER DELETE
AS
BEGIN
DECLARE @Count INT = (SELECT COUNT(1) FROM DELETED)
IF @Count = 0 RETURN
SET NOCOUNT ON
DECLARE @UserId UNIQUEIDENTIFIER = (SELECT [UserId] FROM DELETED)
DECLARE @CipherId UNIQUEIDENTIFIER = (SELECT [Id] FROM DELETED)
EXEC [dbo].[History_Create] @UserId, @CipherId, 2 /* Delete */, GETUTCDATE
INSERT INTO [dbo].[History]
(
[UserId],
[CipherId],
[Event],
[Date]
)
SELECT
[UserId],
[Id],
2, --Delete
GETUTCDATE()
FROM
DELETED
END

View File

@ -4,8 +4,6 @@
[CipherId] UNIQUEIDENTIFIER NOT NULL,
[Event] TINYINT NOT NULL,
[Date] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_CipherHistory] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_CipherHistory_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]),
CONSTRAINT [FK_CipherHistory_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
CONSTRAINT [PK_CipherHistory] PRIMARY KEY CLUSTERED ([Id] ASC)
);