1
0
mirror of https://github.com/bitwarden/server synced 2026-01-05 18:13:31 +00:00

Added Sql project with database schema. Added SqlServer repositories for Site, Folder, and User (Cipher still TODO). Switched DI in Startup to SqlServer repos.

This commit is contained in:
Kyle Spearrin
2016-02-06 01:18:25 -05:00
parent 78fcad8c69
commit 13f85bf2f1
37 changed files with 935 additions and 11 deletions

View File

@@ -0,0 +1,18 @@
CREATE PROCEDURE [dbo].[FolderAndSite_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[FolderView]
WHERE
[UserId] = @UserId
SELECT
*
FROM
[dbo].[SiteView]
WHERE
[UserId] = @UserId
END

View File

@@ -0,0 +1,25 @@
CREATE PROCEDURE [dbo].[Folder_Create]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@Name NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
INSERT INTO [dbo].[Folder]
(
[Id],
[UserId],
[Name],
[CreationDate],
[RevisionDate]
)
VALUES
(
@Id,
@UserId,
@Name,
@CreationDate,
@RevisionDate
)
END

View File

@@ -0,0 +1,21 @@
CREATE PROCEDURE [dbo].[Folder_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
BEGIN TRANSACTION Folder_DeleteById
UPDATE
[dbo].[Site]
SET
[FolderId] = NULL
WHERE
[FolderId] = @Id
DELETE
FROM
[dbo].[Folder]
WHERE
[Id] = @Id
COMMIT TRANSACTION Folder_DeleteById
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[Folder_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[FolderView]
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[Folder_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[FolderView]
WHERE
[UserId] = @UserId
END

View File

@@ -0,0 +1,17 @@
CREATE PROCEDURE [dbo].[Folder_Update]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@Name NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
UPDATE [dbo].[Folder]
SET
[UserId] = @UserId,
[Name] = @Name,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,40 @@
CREATE PROCEDURE [dbo].[Site_Create]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@FolderId UNIQUEIDENTIFIER,
@Name NVARCHAR(MAX),
@Uri NVARCHAR(MAX),
@Username NVARCHAR(MAX),
@Password NVARCHAR(MAX),
@Notes NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
INSERT INTO [dbo].[Site]
(
[Id],
[UserId],
[FolderId],
[Name],
[Uri],
[Username],
[Password],
[Notes],
[CreationDate],
[RevisionDate]
)
VALUES
(
@Id,
@UserId,
@FolderId,
@Name,
@Uri,
@Username,
@Password,
@Notes,
@CreationDate,
@RevisionDate
)
END

View File

@@ -0,0 +1,10 @@
CREATE PROCEDURE [dbo].[Site_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
DELETE
FROM
[dbo].[Site]
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[Site_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[SiteView]
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[Site_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[SiteView]
WHERE
[UserId] = @UserId
END

View File

@@ -0,0 +1,27 @@
CREATE PROCEDURE [dbo].[Site_Update]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@FolderId UNIQUEIDENTIFIER,
@Name NVARCHAR(MAX),
@Uri NVARCHAR(MAX),
@Username NVARCHAR(MAX),
@Password NVARCHAR(MAX),
@Notes NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
UPDATE [dbo].[Site]
SET
[UserId] = @UserId,
[FolderId] = @FolderId,
[Name] = @Name,
[Uri] = @Uri,
[Username] = @Username,
[Password] = @Password,
[Notes] = @Notes,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,43 @@
CREATE PROCEDURE [dbo].[User_Create]
@Id UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Email NVARCHAR(50),
@MasterPassword NVARCHAR(300),
@MasterPasswordHint NVARCHAR(50),
@Culture NVARCHAR(10),
@SecurityStamp NVARCHAR(50),
@TwoFactorEnabled BIT,
@TwoFactorProvider TINYINT,
@AuthenticatorKey NVARCHAR(50),
@CreationDate DATETIME2(7)
AS
BEGIN
INSERT INTO [dbo].[User]
(
[Id],
[Name],
[Email],
[MasterPassword],
[MasterPasswordHint],
[Culture],
[SecurityStamp],
[TwoFactorEnabled],
[TwoFactorProvider],
[AuthenticatorKey],
[CreationDate]
)
VALUES
(
@Id,
@Name,
@Email,
@MasterPassword,
@MasterPasswordHint,
@Culture,
@SecurityStamp,
@TwoFactorEnabled,
@TwoFactorProvider,
@AuthenticatorKey,
@CreationDate
)
END

View File

@@ -0,0 +1,26 @@
CREATE PROCEDURE [dbo].[User_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
BEGIN TRANSACTION User_DeleteById
DELETE
FROM
[dbo].[Site]
WHERE
[UserId] = @Id
DELETE
FROM
[dbo].[Folder]
WHERE
[UserId] = @Id
DELETE
FROM
[dbo].[User]
WHERE
[Id] = @Id
COMMIT TRANSACTION User_DeleteById
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[User_ReadByEmail]
@Email NVARCHAR(50)
AS
BEGIN
SELECT
*
FROM
[dbo].[UserView]
WHERE
[Email] = @Email
END

View File

@@ -0,0 +1,11 @@
CREATE PROCEDURE [dbo].[User_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SELECT
*
FROM
[dbo].[UserView]
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,29 @@
CREATE PROCEDURE [dbo].[User_Update]
@Id UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Email NVARCHAR(50),
@MasterPassword NVARCHAR(300),
@MasterPasswordHint NVARCHAR(50),
@Culture NVARCHAR(10),
@SecurityStamp NVARCHAR(50),
@TwoFactorEnabled BIT,
@TwoFactorProvider TINYINT,
@AuthenticatorKey NVARCHAR(50),
@CreationDate DATETIME2(7)
AS
BEGIN
UPDATE [dbo].[User]
SET
[Name] = @Name,
[Email] = @Email,
[MasterPassword] = @MasterPassword,
[MasterPasswordHint] = @MasterPasswordHint,
[Culture] = @Culture,
[SecurityStamp] = @SecurityStamp,
[TwoFactorEnabled] = @TwoFactorEnabled,
[TwoFactorProvider] = TwoFactorProvider,
[AuthenticatorKey] = @AuthenticatorKey,
[CreationDate] = @CreationDate
WHERE
[Id] = @Id
END

View File

@@ -0,0 +1,15 @@
CREATE TABLE [dbo].[Folder] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[Name] NVARCHAR (MAX) NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_Folder] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Folder_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);
GO
CREATE NONCLUSTERED INDEX [IX_Folder_UserId]
ON [dbo].[Folder]([UserId] ASC);

View File

@@ -0,0 +1,21 @@
CREATE TABLE [dbo].[Site] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[FolderId] UNIQUEIDENTIFIER NULL,
[Name] NVARCHAR (MAX) NOT NULL,
[Uri] NVARCHAR (MAX) NULL,
[Username] NVARCHAR (MAX) NULL,
[Password] NVARCHAR (MAX) NULL,
[Notes] NVARCHAR (MAX) NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_Site] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Site_Folder] FOREIGN KEY ([FolderId]) REFERENCES [dbo].[Folder] ([Id]),
CONSTRAINT [FK_Site_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);
GO
CREATE NONCLUSTERED INDEX [IX_Site_UserId]
ON [dbo].[Site]([UserId] ASC);

View File

@@ -0,0 +1,20 @@
CREATE TABLE [dbo].[User] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[Name] NVARCHAR (50) NULL,
[Email] NVARCHAR (50) NOT NULL,
[MasterPassword] NVARCHAR (300) NOT NULL,
[MasterPasswordHint] NVARCHAR (50) NULL,
[Culture] NVARCHAR (10) NOT NULL,
[SecurityStamp] NVARCHAR (50) NOT NULL,
[TwoFactorEnabled] BIT NOT NULL,
[TwoFactorProvider] TINYINT NULL,
[AuthenticatorKey] NVARCHAR (50) NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE NONCLUSTERED INDEX [IX_User_Email]
ON [dbo].[User]([Email] ASC);

View File

@@ -0,0 +1,6 @@
CREATE VIEW [dbo].[FolderView]
AS
SELECT
*
FROM
[dbo].[Folder]

View File

@@ -0,0 +1,6 @@
CREATE VIEW [dbo].[SiteView]
AS
SELECT
*
FROM
[dbo].[Site]

View File

@@ -0,0 +1,6 @@
CREATE VIEW [dbo].[UserView]
AS
SELECT
*
FROM
[dbo].[User]