1
0
mirror of https://github.com/bitwarden/server.git synced 2025-02-01 23:31:41 +01:00

Stub out new org/subvault sharing tables

This commit is contained in:
Kyle Spearrin 2017-02-28 21:56:59 -05:00
parent 7e86c72386
commit e68ba4869d
24 changed files with 94 additions and 215 deletions

View File

@ -65,22 +65,24 @@
<Folder Include="dbo\Stored Procedures\" />
</ItemGroup>
<ItemGroup>
<Build Include="dbo\Tables\Cipher.sql" />
<Build Include="dbo\Tables\Share.sql" />
<Build Include="dbo\Tables\SubvaultCipher.sql" />
<Build Include="dbo\Tables\SubvaultUser.sql" />
<Build Include="dbo\Tables\Device.sql" />
<Build Include="dbo\Tables\History.sql" />
<Build Include="dbo\Tables\Cipher.sql" />
<Build Include="dbo\Tables\FolderCipher.sql" />
<Build Include="dbo\Tables\OrganizationUser.sql" />
<Build Include="dbo\Tables\Grant.sql" />
<Build Include="dbo\Tables\Organization.sql" />
<Build Include="dbo\Tables\Favorite.sql" />
<Build Include="dbo\Tables\Subvault.sql" />
<Build Include="dbo\Tables\User.sql" />
<Build Include="dbo\Views\ShareView.sql" />
<Build Include="dbo\Tables\Folder.sql" />
<Build Include="dbo\Views\CipherView.sql" />
<Build Include="dbo\Views\DeviceView.sql" />
<Build Include="dbo\Views\HistoryView.sql" />
<Build Include="dbo\Views\UserView.sql" />
<Build Include="dbo\Views\GrantView.sql" />
<Build Include="dbo\Stored Procedures\Share_Create.sql" />
<Build Include="dbo\Stored Procedures\Share_DeleteById.sql" />
<Build Include="dbo\Stored Procedures\Share_ReadById.sql" />
<Build Include="dbo\Stored Procedures\Share_Update.sql" />
<Build Include="dbo\Stored Procedures\Cipher_Create.sql" />
<Build Include="dbo\Stored Procedures\Cipher_DeleteById.sql" />
<Build Include="dbo\Stored Procedures\Cipher_ReadById.sql" />
@ -109,10 +111,5 @@
<Build Include="dbo\Stored Procedures\Grant_ReadBySubjectId.sql" />
<Build Include="dbo\Stored Procedures\Grant_Save.sql" />
<Build Include="dbo\Stored Procedures\User_ReadAccountRevisionDateById.sql" />
<Build Include="dbo\Views\CipherShareView.sql" />
<Build Include="dbo\Stored Procedures\CipherShare_ReadByUserId.sql" />
<Build Include="dbo\Stored Procedures\CipherShare_ReadById.sql" />
<Build Include="dbo\Stored Procedures\Share_ReadByCipherId.sql" />
<Build Include="dbo\Stored Procedures\CipherShare_ReadByTypeUserId.sql" />
</ItemGroup>
</Project>

View File

@ -1,13 +0,0 @@
CREATE PROCEDURE [dbo].[CipherShare_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM
[dbo].[CipherShareView]
WHERE
[Id] = @Id
END

View File

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

View File

@ -1,14 +0,0 @@
CREATE PROCEDURE [dbo].[CipherShare_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM
[dbo].[CipherShareView]
WHERE
[UserId] = @UserId
OR [ShareUserId] = @UserId
END

View File

@ -4,7 +4,6 @@
@FolderId UNIQUEIDENTIFIER,
@Type TINYINT,
@Favorite BIT,
@Key NVARCHAR(MAX),
@Data NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
@ -19,7 +18,6 @@ BEGIN
[FolderId],
[Type],
[Favorite],
[Key],
[Data],
[CreationDate],
[RevisionDate]
@ -31,9 +29,8 @@ BEGIN
@FolderId,
@Type,
@Favorite,
@Key,
@Data,
@CreationDate,
@RevisionDate
)
END
END

View File

@ -4,7 +4,6 @@
@FolderId UNIQUEIDENTIFIER,
@Type TINYINT,
@Favorite BIT,
@Key NVARCHAR(MAX),
@Data NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
@ -19,10 +18,9 @@ BEGIN
[FolderId] = @FolderId,
[Type] = @Type,
[Favorite] = @Favorite,
[Key] = @Key,
[Data] = @Data,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate
WHERE
[Id] = @Id
END
END

View File

@ -1,39 +0,0 @@
CREATE PROCEDURE [dbo].[Share_Create]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@SharerUserId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER,
@Key NVARCHAR(MAX),
@ReadOnly BIT,
@Status TINYINT,
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[Share]
(
[Id],
[UserId],
[SharerUserId],
[CipherId],
[Key],
[ReadOnly],
[Status],
[CreationDate],
[RevisionDate]
)
VALUES
(
@Id,
@UserId,
@SharerUserId,
@CipherId,
@Key,
@ReadOnly,
@Status,
@CreationDate,
@RevisionDate
)
END

View File

@ -1,12 +0,0 @@
CREATE PROCEDURE [dbo].[Share_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
DELETE
FROM
[dbo].[Share]
WHERE
[Id] = @Id
END

View File

@ -1,13 +0,0 @@
CREATE PROCEDURE [dbo].[Share_ReadByCipherId]
@CipherId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM
[dbo].[ShareView]
WHERE
[CipherId] = @CipherId
END

View File

@ -1,13 +0,0 @@
CREATE PROCEDURE [dbo].[Share_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM
[dbo].[ShareView]
WHERE
[Id] = @Id
END

View File

@ -1,28 +0,0 @@
CREATE PROCEDURE [dbo].[Share_Update]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@SharerUserId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER,
@Key NVARCHAR(MAX),
@ReadOnly BIT,
@Status TINYINT,
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[Share]
SET
[UserId] = @UserId,
[SharerUserId] = @SharerUserId,
[CipherId] = @CipherId,
[Key] = @Key,
[ReadOnly] = @ReadOnly,
[Status] = @Status,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate
WHERE
[Id] = @Id
END

View File

@ -4,7 +4,6 @@
[FolderId] UNIQUEIDENTIFIER NULL,
[Type] TINYINT NOT NULL,
[Favorite] BIT NOT NULL,
[Key] NVARCHAR (MAX) NULL,
[Data] NVARCHAR (MAX) NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,

View File

@ -0,0 +1,8 @@
CREATE TABLE [dbo].[Favorite] (
[UserId] UNIQUEIDENTIFIER NOT NULL,
[CipherId] UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT [PK_Favorite] PRIMARY KEY CLUSTERED ([UserId] ASC, [CipherId] ASC),
CONSTRAINT [FK_Favorite_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]),
CONSTRAINT [FK_Favorite_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);

View File

@ -0,0 +1,10 @@
CREATE TABLE [dbo].[Folder] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[Name] VARCHAR (MAX) 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])
);

View File

@ -0,0 +1,8 @@
CREATE TABLE [dbo].[FolderCipher] (
[FolderId] UNIQUEIDENTIFIER NOT NULL,
[CipherId] UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT [PK_FolderCipher] PRIMARY KEY CLUSTERED ([FolderId] ASC, [CipherId] ASC),
CONSTRAINT [FK_FolderCipher_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]),
CONSTRAINT [FK_FolderCipher_Folder] FOREIGN KEY ([FolderId]) REFERENCES [dbo].[Folder] ([Id])
);

View File

@ -0,0 +1,12 @@
CREATE TABLE [dbo].[Organization] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Plan] TINYINT NOT NULL,
[MaxUsers] SMALLINT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_Organization] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Organization_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);

View File

@ -0,0 +1,14 @@
CREATE TABLE [dbo].[OrganizationUser] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[OrganizationId] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NULL,
[Email] NVARCHAR (50) NULL,
[Status] TINYINT NOT NULL,
[Type] TINYINT NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_OrganizationUser] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_OrganizationUser_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]),
CONSTRAINT [FK_OrganizationUser_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);

View File

@ -1,21 +0,0 @@
CREATE TABLE [dbo].[Share] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[SharerUserId] UNIQUEIDENTIFIER NOT NULL,
[CipherId] UNIQUEIDENTIFIER NOT NULL,
[Key] VARCHAR (MAX) NULL,
[ReadOnly] BIT NOT NULL,
[Status] TINYINT NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_Share] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Share_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]),
CONSTRAINT [FK_Share_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id]),
CONSTRAINT [FK_Share_SharerUser] FOREIGN KEY ([SharerUserId]) REFERENCES [dbo].[User] ([Id])
);
GO
CREATE NONCLUSTERED INDEX [IX_Share_CipherId_Status]
ON [dbo].[Share]([CipherId] ASC, [Status] ASC);

View File

@ -0,0 +1,8 @@
CREATE TABLE [dbo].[Subvault] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[Name] VARCHAR (MAX) NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_Subvault] PRIMARY KEY CLUSTERED ([Id] ASC)
);

View File

@ -0,0 +1,8 @@
CREATE TABLE [dbo].[SubvaultCipher] (
[SubvaultId] UNIQUEIDENTIFIER NOT NULL,
[CipherId] UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT [PK_SubvaultCipher] PRIMARY KEY CLUSTERED ([SubvaultId] ASC, [CipherId] ASC),
CONSTRAINT [FK_SubvaultCipher_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]),
CONSTRAINT [FK_SubvaultCipher_Subvault] FOREIGN KEY ([SubvaultId]) REFERENCES [dbo].[Subvault] ([Id])
);

View File

@ -0,0 +1,13 @@
CREATE TABLE [dbo].[SubvaultUser] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[SubvaultId] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[Key] VARCHAR (MAX) NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[Admin] BIT NOT NULL,
[ReadOnly] BIT NOT NULL,
CONSTRAINT [PK_SubvaultUser] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_SubvaultUser_Subvault] FOREIGN KEY ([SubvaultId]) REFERENCES [dbo].[Subvault] ([Id]),
CONSTRAINT [FK_SubvaultUser_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id])
);

View File

@ -14,8 +14,8 @@
[EquivalentDomains] NVARCHAR (MAX) NULL,
[ExcludedGlobalEquivalentDomains] NVARCHAR (MAX) NULL,
[AccountRevisionDate] DATETIME2 (7) NOT NULL,
[PublicKey] NVARCHAR (MAX) NULL,
[PrivateKey] NVARCHAR (MAX) NULL,
[PublicKey] VARCHAR (MAX) NULL,
[PrivateKey] VARCHAR (MAX) NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ([Id] ASC)

View File

@ -1,19 +0,0 @@
CREATE VIEW [dbo].[CipherShareView]
AS
SELECT
C.[Id],
C.[UserId],
C.[FolderId],
C.[Type],
C.[Favorite],
ISNULL(S.[Key], C.[Key]) [Key],
C.[Data],
C.[CreationDate],
C.[RevisionDate],
S.[ReadOnly],
S.[Status],
S.[UserId] [ShareUserId]
FROM
[dbo].[Cipher] C
LEFT JOIN
[dbo].[Share] S ON C.[Id] = S.[CipherId]

View File

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