mirror of
https://github.com/bitwarden/server
synced 2025-12-28 14:13:48 +00:00
110 lines
2.2 KiB
Transact-SQL
110 lines
2.2 KiB
Transact-SQL
CREATE TABLE [dbo].[Cipher] (
|
|
[Id] UNIQUEIDENTIFIER NOT NULL,
|
|
[UserId] UNIQUEIDENTIFIER NOT NULL,
|
|
[FolderId] UNIQUEIDENTIFIER NULL,
|
|
[Type] TINYINT NOT NULL,
|
|
[Favorite] BIT NOT NULL,
|
|
[Data] NVARCHAR (MAX) NOT NULL,
|
|
[CreationDate] DATETIME2 (7) NOT NULL,
|
|
[RevisionDate] DATETIME2 (7) NOT NULL,
|
|
CONSTRAINT [PK_Cipher] PRIMARY KEY CLUSTERED ([Id] ASC),
|
|
CONSTRAINT [FK_Cipher_Folder] FOREIGN KEY ([FolderId]) REFERENCES [dbo].[Cipher] ([Id]),
|
|
CONSTRAINT [FK_Cipher_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
|
|
);
|
|
|
|
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_Cipher_UserId_Type]
|
|
ON [dbo].[Cipher]([UserId] ASC, [Type] ASC);
|
|
|
|
|
|
GO
|
|
CREATE TRIGGER [dbo].[Cipher_Inserted]
|
|
ON [dbo].[Cipher] AFTER INSERT
|
|
AS
|
|
BEGIN
|
|
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
|
|
|
|
UPDATE
|
|
[User]
|
|
SET
|
|
[AccountRevisionDate] = GETUTCDATE()
|
|
END
|
|
GO
|
|
CREATE TRIGGER [dbo].[Cipher_Updated]
|
|
ON [dbo].[Cipher] AFTER UPDATE
|
|
AS
|
|
BEGIN
|
|
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
|
|
|
|
UPDATE
|
|
[User]
|
|
SET
|
|
[AccountRevisionDate] = GETUTCDATE()
|
|
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
|
|
|
|
INSERT INTO [dbo].[History]
|
|
(
|
|
[UserId],
|
|
[CipherId],
|
|
[Event],
|
|
[Date]
|
|
)
|
|
SELECT
|
|
[UserId],
|
|
[Id],
|
|
2, --Delete
|
|
GETUTCDATE()
|
|
FROM
|
|
DELETED
|
|
|
|
UPDATE
|
|
[User]
|
|
SET
|
|
[AccountRevisionDate] = GETUTCDATE()
|
|
END |