1
0
mirror of https://github.com/bitwarden/server synced 2025-12-31 23:53:17 +00:00

renaming subvault => collection

This commit is contained in:
Kyle Spearrin
2017-04-27 09:19:30 -04:00
parent 2340369d56
commit c6ac82dadd
87 changed files with 493 additions and 493 deletions

View File

@@ -5,7 +5,7 @@ BEGIN
;WITH [CTE] AS(
SELECT
CASE WHEN OU.[AccessAllSubvaults] = 1 OR SU.[ReadOnly] = 0 THEN 1 ELSE 0 END [CanEdit]
CASE WHEN OU.[AccessAllCollections] = 1 OR SU.[ReadOnly] = 0 THEN 1 ELSE 0 END [CanEdit]
FROM
[dbo].[Cipher] C
INNER JOIN
@@ -13,14 +13,14 @@ BEGIN
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.[Id] = @CipherId
AND OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
SELECT
@CanEdit = CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END

View File

@@ -14,9 +14,9 @@ BEGIN
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.Id = @Id
AND (
@@ -25,7 +25,7 @@ BEGIN
C.[UserId] IS NULL
AND OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
)
END

View File

@@ -14,9 +14,9 @@ BEGIN
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.[Type] = @Type
AND (
@@ -25,7 +25,7 @@ BEGIN
C.[UserId] IS NULL
AND OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
)
END

View File

@@ -13,15 +13,15 @@ BEGIN
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.[UserId] = @UserId
OR (
C.[UserId] IS NULL
AND OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[CipherDetails_ReadByUserIdHasSubvault]
CREATE PROCEDURE [dbo].[CipherDetails_ReadByUserIdHasCollection]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
@@ -13,11 +13,11 @@ BEGIN
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
END

View File

@@ -18,9 +18,9 @@ BEGIN
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.Id = @Id
AND (
@@ -29,7 +29,7 @@ BEGIN
C.[UserId] IS NULL
AND OU.[Status] = 2 -- 2 = Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
)
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Cipher_UpdateWithSubvaults]
CREATE PROCEDURE [dbo].[Cipher_UpdateWithCollections]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@OrganizationId UNIQUEIDENTIFIER,
@@ -8,7 +8,7 @@
@Folders NVARCHAR(MAX),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7),
@SubvaultIds AS [dbo].[GuidIdArray] READONLY
@CollectionIds AS [dbo].[GuidIdArray] READONLY
AS
BEGIN
SET NOCOUNT ON
@@ -24,35 +24,35 @@ BEGIN
WHERE
[Id] = @Id
;WITH [AvailableSubvaultsCTE] AS(
;WITH [AvailableCollectionsCTE] AS(
SELECT
S.[Id]
FROM
[dbo].[Subvault] S
[dbo].[Collection] S
INNER JOIN
[Organization] O ON O.[Id] = S.[OrganizationId]
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[SubvaultId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[CollectionId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
O.[Id] = @OrganizationId
AND O.[Enabled] = 1
AND OU.[Status] = 2 -- Confirmed
AND (OU.[AccessAllSubvaults] = 1 OR SU.[ReadOnly] = 0)
AND (OU.[AccessAllCollections] = 1 OR SU.[ReadOnly] = 0)
)
INSERT INTO [dbo].[SubvaultCipher]
INSERT INTO [dbo].[CollectionCipher]
(
[SubvaultId],
[CollectionId],
[CipherId]
)
SELECT
[Id],
@Id
FROM
@SubvaultIds
@CollectionIds
WHERE
[Id] IN (SELECT [Id] FROM [AvailableSubvaultsCTE])
[Id] IN (SELECT [Id] FROM [AvailableCollectionsCTE])
IF @OrganizationId IS NOT NULL
BEGIN

View File

@@ -18,14 +18,14 @@ BEGIN
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllSubvaults] = 0 AND SC.[CipherId] = C.[Id]
[dbo].[CollectionCipher] SC ON C.[UserId] IS NULL AND OU.[AccessAllCollections] = 0 AND SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON SU.[CollectionId] = SC.[CollectionId] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
C.[UserId] = @UserId
OR (
C.[UserId] IS NULL
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
)
AND C.[Folders] IS NOT NULL
AND JSON_VALUE(C.[Folders], @UserIdPath) = @Id

View File

@@ -14,7 +14,7 @@ BEGIN
SELECT
*
FROM
[dbo].[SubvaultUserSubvaultDetailsView]
[dbo].[CollectionUserCollectionDetailsView]
WHERE
[OrganizationUserId] = @Id
END

View File

@@ -6,7 +6,7 @@
@Key VARCHAR(MAX),
@Status TINYINT,
@Type TINYINT,
@AccessAllSubvaults BIT,
@AccessAllCollections BIT,
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
@@ -22,7 +22,7 @@ BEGIN
[Key],
[Status],
[Type],
[AccessAllSubvaults],
[AccessAllCollections],
[CreationDate],
[RevisionDate]
)
@@ -35,7 +35,7 @@ BEGIN
@Key,
@Status,
@Type,
@AccessAllSubvaults,
@AccessAllCollections,
@CreationDate,
@RevisionDate
)

View File

@@ -6,7 +6,7 @@ BEGIN
DELETE
FROM
[dbo].[SubvaultUser]
[dbo].[CollectionUser]
WHERE
[OrganizationUserId] = @Id

View File

@@ -6,7 +6,7 @@
@Key VARCHAR(MAX),
@Status TINYINT,
@Type TINYINT,
@AccessAllSubvaults BIT,
@AccessAllCollections BIT,
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7)
AS
@@ -22,7 +22,7 @@ BEGIN
[Key] = @Key,
[Status] = @Status,
[Type] = @Type,
[AccessAllSubvaults] = @AccessAllSubvaults,
[AccessAllCollections] = @AccessAllCollections,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate
WHERE

View File

@@ -6,7 +6,7 @@
@Plan NVARCHAR(20),
@PlanType TINYINT,
@Seats SMALLINT,
@MaxSubvaults SMALLINT,
@MaxCollections SMALLINT,
@StripeCustomerId VARCHAR(50),
@StripeSubscriptionId VARCHAR(50),
@Enabled BIT,
@@ -25,7 +25,7 @@ BEGIN
[Plan],
[PlanType],
[Seats],
[MaxSubvaults],
[MaxCollections],
[StripeCustomerId],
[StripeSubscriptionId],
[Enabled],
@@ -41,7 +41,7 @@ BEGIN
@Plan,
@PlanType,
@Seats,
@MaxSubvaults,
@MaxCollections,
@StripeCustomerId,
@StripeSubscriptionId,
@Enabled,

View File

@@ -6,7 +6,7 @@
@Plan NVARCHAR(20),
@PlanType TINYINT,
@Seats SMALLINT,
@MaxSubvaults SMALLINT,
@MaxCollections SMALLINT,
@StripeCustomerId VARCHAR(50),
@StripeSubscriptionId VARCHAR(50),
@Enabled BIT,
@@ -26,7 +26,7 @@ BEGIN
[Plan] = @Plan,
[PlanType] = @PlanType,
[Seats] = @Seats,
[MaxSubvaults] = @MaxSubvaults,
[MaxCollections] = @MaxCollections,
[StripeCustomerId] = @StripeCustomerId,
[StripeSubscriptionId] = @StripeSubscriptionId,
[Enabled] = @Enabled,

View File

@@ -1,18 +1,18 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_Create]
@SubvaultId UNIQUEIDENTIFIER,
CREATE PROCEDURE [dbo].[CollectionCipher_Create]
@CollectionId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[SubvaultCipher]
INSERT INTO [dbo].[CollectionCipher]
(
[SubvaultId],
[CollectionId],
[CipherId]
)
VALUES
(
@SubvaultId,
@CollectionId,
@CipherId
)

View File

@@ -1,5 +1,5 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_Delete]
@SubvaultId UNIQUEIDENTIFIER,
CREATE PROCEDURE [dbo].[CollectionCipher_Delete]
@CollectionId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,9 +7,9 @@ BEGIN
DELETE
FROM
[dbo].[SubvaultCipher]
[dbo].[CollectionCipher]
WHERE
[SubvaultId] = @SubvaultId
[CollectionId] = @CollectionId
AND [CipherId] = @CipherId
DECLARE @OrganizationId UNIQUEIDENTIFIER = (SELECT TOP 1 [OrganizationId] FROM [dbo].[Cipher] WHERE [Id] = @CipherId)

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_ReadByOrganizationId]
CREATE PROCEDURE [dbo].[CollectionCipher_ReadByOrganizationId]
@OrganizationId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,9 +7,9 @@ BEGIN
SELECT
SC.*
FROM
[dbo].[SubvaultCipher] SC
[dbo].[CollectionCipher] SC
INNER JOIN
[dbo].[Subvault] S ON S.[Id] = SC.[SubvaultId]
[dbo].[Collection] S ON S.[Id] = SC.[CollectionId]
WHERE
S.[OrganizationId] = @OrganizationId
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_ReadByUserId]
CREATE PROCEDURE [dbo].[CollectionCipher_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,14 +7,14 @@ BEGIN
SELECT
SC.*
FROM
[dbo].[SubvaultCipher] SC
[dbo].[CollectionCipher] SC
INNER JOIN
[dbo].[Subvault] S ON S.[Id] = SC.[SubvaultId]
[dbo].[Collection] S ON S.[Id] = SC.[CollectionId]
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = S.[OrganizationId] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[SubvaultId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[CollectionId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
OU.[Status] = 2 -- Confirmed
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_ReadByUserIdCipherId]
CREATE PROCEDURE [dbo].[CollectionCipher_ReadByUserIdCipherId]
@UserId UNIQUEIDENTIFIER,
@CipherId UNIQUEIDENTIFIER
AS
@@ -8,15 +8,15 @@ BEGIN
SELECT
SC.*
FROM
[dbo].[SubvaultCipher] SC
[dbo].[CollectionCipher] SC
INNER JOIN
[dbo].[Subvault] S ON S.[Id] = SC.[SubvaultId]
[dbo].[Collection] S ON S.[Id] = SC.[CollectionId]
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = S.[OrganizationId] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[SubvaultId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[CollectionId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
SC.[CipherId] = @CipherId
AND OU.[Status] = 2 -- Confirmed
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
END

View File

@@ -1,7 +1,7 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_UpdateSubvaults]
CREATE PROCEDURE [dbo].[CollectionCipher_UpdateCollections]
@CipherId UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@SubvaultIds AS [dbo].[GuidIdArray] READONLY
@CollectionIds AS [dbo].[GuidIdArray] READONLY
AS
BEGIN
SET NOCOUNT ON
@@ -15,32 +15,32 @@ BEGIN
[Id] = @CipherId
)
;WITH [AvailableSubvaultsCTE] AS(
;WITH [AvailableCollectionsCTE] AS(
SELECT
S.[Id]
FROM
[dbo].[Subvault] S
[dbo].[Collection] S
INNER JOIN
[Organization] O ON O.[Id] = S.[OrganizationId]
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[SubvaultId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[CollectionId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
O.[Id] = @OrgId
AND O.[Enabled] = 1
AND OU.[Status] = 2 -- Confirmed
AND (OU.[AccessAllSubvaults] = 1 OR SU.[ReadOnly] = 0)
AND (OU.[AccessAllCollections] = 1 OR SU.[ReadOnly] = 0)
)
MERGE
[dbo].[SubvaultCipher] AS [Target]
[dbo].[CollectionCipher] AS [Target]
USING
@SubvaultIds AS [Source]
@CollectionIds AS [Source]
ON
[Target].[SubvaultId] = [Source].[Id]
[Target].[CollectionId] = [Source].[Id]
AND [Target].[CipherId] = @CipherId
WHEN NOT MATCHED BY TARGET
AND [Source].[Id] IN (SELECT [Id] FROM [AvailableSubvaultsCTE]) THEN
AND [Source].[Id] IN (SELECT [Id] FROM [AvailableCollectionsCTE]) THEN
INSERT VALUES
(
[Source].[Id],
@@ -48,7 +48,7 @@ BEGIN
)
WHEN NOT MATCHED BY SOURCE
AND [Target].[CipherId] = @CipherId
AND [Target].[SubvaultId] IN (SELECT [Id] FROM [AvailableSubvaultsCTE]) THEN
AND [Target].[CollectionId] IN (SELECT [Id] FROM [AvailableCollectionsCTE]) THEN
DELETE
;

View File

@@ -1,28 +1,28 @@
CREATE PROCEDURE [dbo].[SubvaultCipher_UpdateSubvaultsAdmin]
CREATE PROCEDURE [dbo].[CollectionCipher_UpdateCollectionsAdmin]
@CipherId UNIQUEIDENTIFIER,
@OrganizationId UNIQUEIDENTIFIER,
@SubvaultIds AS [dbo].[GuidIdArray] READONLY
@CollectionIds AS [dbo].[GuidIdArray] READONLY
AS
BEGIN
SET NOCOUNT ON
;WITH [AvailableSubvaultsCTE] AS(
;WITH [AvailableCollectionsCTE] AS(
SELECT
Id
FROM
[dbo].[Subvault]
[dbo].[Collection]
WHERE
OrganizationId = @OrganizationId
)
MERGE
[dbo].[SubvaultCipher] AS [Target]
[dbo].[CollectionCipher] AS [Target]
USING
@SubvaultIds AS [Source]
@CollectionIds AS [Source]
ON
[Target].[SubvaultId] = [Source].[Id]
[Target].[CollectionId] = [Source].[Id]
AND [Target].[CipherId] = @CipherId
WHEN NOT MATCHED BY TARGET
AND [Source].[Id] IN (SELECT [Id] FROM [AvailableSubvaultsCTE]) THEN
AND [Source].[Id] IN (SELECT [Id] FROM [AvailableCollectionsCTE]) THEN
INSERT VALUES
(
[Source].[Id],

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultUserSubvaultDetails_ReadByUserId]
CREATE PROCEDURE [dbo].[CollectionUserCollectionDetails_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
SU.*
FROM
[dbo].[SubvaultUserSubvaultDetailsView] SU
[dbo].[CollectionUserCollectionDetailsView] SU
INNER JOIN
[OrganizationUser] OU ON SU.[OrganizationUserId] = OU.[Id]
WHERE

View File

@@ -1,5 +1,5 @@
CREATE PROCEDURE [dbo].[SubvaultUserUserDetails_ReadBySubvaultId]
@SubvaultId UNIQUEIDENTIFIER
CREATE PROCEDURE [dbo].[CollectionUserUserDetails_ReadByCollectionId]
@CollectionId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
@@ -7,8 +7,8 @@ BEGIN
SELECT
*
FROM
[dbo].[SubvaultUserUserDetailsView]
[dbo].[CollectionUserUserDetailsView]
WHERE
[AccessAllSubvaults] = 1
OR [SubvaultId] = @SubvaultId
[AccessAllCollections] = 1
OR [CollectionId] = @CollectionId
END

View File

@@ -1,6 +1,6 @@
CREATE PROCEDURE [dbo].[SubvaultUser_Create]
CREATE PROCEDURE [dbo].[CollectionUser_Create]
@Id UNIQUEIDENTIFIER,
@SubvaultId UNIQUEIDENTIFIER,
@CollectionId UNIQUEIDENTIFIER,
@OrganizationUserId UNIQUEIDENTIFIER,
@ReadOnly BIT,
@CreationDate DATETIME2(7),
@@ -9,10 +9,10 @@ AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[SubvaultUser]
INSERT INTO [dbo].[CollectionUser]
(
[Id],
[SubvaultId],
[CollectionId],
[OrganizationUserId],
[ReadOnly],
[CreationDate],
@@ -21,7 +21,7 @@ BEGIN
VALUES
(
@Id,
@SubvaultId,
@CollectionId,
@OrganizationUserId,
@ReadOnly,
@CreationDate,

View File

@@ -1,14 +1,14 @@
CREATE PROCEDURE [dbo].[SubvaultUser_DeleteById]
CREATE PROCEDURE [dbo].[CollectionUser_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
DECLARE @OrganizationUserId UNIQUEIDENTIFIER = (SELECT TOP 1 [OrganizationUserId] FROM [dbo].[SubvaultUser] WHERE [Id] = @Id)
DECLARE @OrganizationUserId UNIQUEIDENTIFIER = (SELECT TOP 1 [OrganizationUserId] FROM [dbo].[CollectionUser] WHERE [Id] = @Id)
DELETE
FROM
[dbo].[SubvaultUser]
[dbo].[CollectionUser]
WHERE
[Id] = @Id

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultUser_ReadById]
CREATE PROCEDURE [dbo].[CollectionUser_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
*
FROM
[dbo].[SubvaultUserView]
[dbo].[CollectionUserView]
WHERE
[Id] = @Id
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultUser_ReadByOrganizationUserId]
CREATE PROCEDURE [dbo].[CollectionUser_ReadByOrganizationUserId]
@OrganizationUserId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
*
FROM
[dbo].[SubvaultUserView]
[dbo].[CollectionUserView]
WHERE
[OrganizationUserId] = @OrganizationUserId
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[SubvaultUser_ReadCanEditByCipherIdUserId]
CREATE PROCEDURE [dbo].[CollectionUser_ReadCanEditByCipherIdUserId]
@UserId UNIQUEIDENTIFIER,
@CipherId AS UNIQUEIDENTIFIER
AS

View File

@@ -1,6 +1,6 @@
CREATE PROCEDURE [dbo].[SubvaultUser_Update]
CREATE PROCEDURE [dbo].[CollectionUser_Update]
@Id UNIQUEIDENTIFIER,
@SubvaultId UNIQUEIDENTIFIER,
@CollectionId UNIQUEIDENTIFIER,
@OrganizationUserId UNIQUEIDENTIFIER,
@ReadOnly BIT,
@CreationDate DATETIME2(7),
@@ -10,9 +10,9 @@ BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[SubvaultUser]
[dbo].[CollectionUser]
SET
[SubvaultId] = @SubvaultId,
[CollectionId] = @CollectionId,
[OrganizationUserId] = @OrganizationUserId,
[ReadOnly] = @ReadOnly,
[CreationDate] = @CreationDate,

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_Create]
CREATE PROCEDURE [dbo].[Collection_Create]
@Id UNIQUEIDENTIFIER,
@OrganizationId UNIQUEIDENTIFIER,
@Name VARCHAR(MAX),
@@ -8,7 +8,7 @@ AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[Subvault]
INSERT INTO [dbo].[Collection]
(
[Id],
[OrganizationId],

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_DeleteById]
CREATE PROCEDURE [dbo].[Collection_DeleteById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
@@ -6,7 +6,7 @@ BEGIN
DELETE
FROM
[dbo].[Subvault]
[dbo].[Collection]
WHERE
[Id] = @Id
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_ReadById]
CREATE PROCEDURE [dbo].[Collection_ReadById]
@Id UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
*
FROM
[dbo].[SubvaultView]
[dbo].[CollectionView]
WHERE
[Id] = @Id
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_ReadByOrganizationId]
CREATE PROCEDURE [dbo].[Collection_ReadByOrganizationId]
@OrganizationId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
S.*
FROM
[dbo].[SubvaultView] S
[dbo].[CollectionView] S
WHERE
S.[OrganizationId] = @OrganizationId
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_ReadByUserId]
CREATE PROCEDURE [dbo].[Collection_ReadByUserId]
@UserId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,15 +7,15 @@ BEGIN
SELECT
S.*
FROM
[dbo].[SubvaultView] S
[dbo].[CollectionView] S
INNER JOIN
[Organization] O ON O.[Id] = S.[OrganizationId]
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[OrganizationId] = O.[Id] AND OU.[UserId] = @UserId
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[SubvaultId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[CollectionId] = S.[Id] AND SU.[OrganizationUserId] = OU.[Id]
WHERE
OU.[Status] = 2 -- Confirmed
AND O.[Enabled] = 1
AND (OU.[AccessAllSubvaults] = 1 OR SU.[SubvaultId] IS NOT NULL)
AND (OU.[AccessAllCollections] = 1 OR SU.[CollectionId] IS NOT NULL)
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_ReadCountByOrganizationId]
CREATE PROCEDURE [dbo].[Collection_ReadCountByOrganizationId]
@OrganizationId UNIQUEIDENTIFIER
AS
BEGIN
@@ -7,7 +7,7 @@ BEGIN
SELECT
COUNT(1)
FROM
[dbo].[Subvault]
[dbo].[Collection]
WHERE
[OrganizationId] = @OrganizationId
END

View File

@@ -1,4 +1,4 @@
CREATE PROCEDURE [dbo].[Subvault_Update]
CREATE PROCEDURE [dbo].[Collection_Update]
@Id UNIQUEIDENTIFIER,
@OrganizationId UNIQUEIDENTIFIER,
@Name VARCHAR(MAX),
@@ -9,7 +9,7 @@ BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[Subvault]
[dbo].[Collection]
SET
[OrganizationId] = @OrganizationId,
[Name] = @Name,

View File

@@ -6,7 +6,7 @@
[Plan] NVARCHAR (20) NOT NULL,
[PlanType] TINYINT NOT NULL,
[Seats] SMALLINT NULL,
[MaxSubvaults] SMALLINT NULL,
[MaxCollections] SMALLINT NULL,
[StripeCustomerId] VARCHAR (50) NULL,
[StripeSubscriptionId] VARCHAR (50) NULL,
[Enabled] BIT NOT NULL,

View File

@@ -6,7 +6,7 @@
[Key] VARCHAR (MAX) NULL,
[Status] TINYINT NOT NULL,
[Type] TINYINT NOT NULL,
[AccessAllSubvaults] BIT NOT NULL,
[AccessAllCollections] BIT NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_OrganizationUser] PRIMARY KEY CLUSTERED ([Id] ASC),

View File

@@ -1,10 +1,10 @@
CREATE TABLE [dbo].[Subvault] (
CREATE TABLE [dbo].[Collection] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[OrganizationId] 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),
CONSTRAINT [FK_Subvault_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) ON DELETE CASCADE
CONSTRAINT [PK_Collection] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Collection_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) ON DELETE CASCADE
);

View File

@@ -1,13 +1,13 @@
CREATE TABLE [dbo].[SubvaultCipher] (
[SubvaultId] UNIQUEIDENTIFIER NOT NULL,
CREATE TABLE [dbo].[CollectionCipher] (
[CollectionId] 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]) ON DELETE CASCADE,
CONSTRAINT [FK_SubvaultCipher_Subvault] FOREIGN KEY ([SubvaultId]) REFERENCES [dbo].[Subvault] ([Id]) ON DELETE CASCADE
CONSTRAINT [PK_CollectionCipher] PRIMARY KEY CLUSTERED ([CollectionId] ASC, [CipherId] ASC),
CONSTRAINT [FK_CollectionCipher_Cipher] FOREIGN KEY ([CipherId]) REFERENCES [dbo].[Cipher] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_CollectionCipher_Collection] FOREIGN KEY ([CollectionId]) REFERENCES [dbo].[Collection] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_SubvaultCipher_CipherId]
ON [dbo].[SubvaultCipher]([CipherId] ASC);
CREATE NONCLUSTERED INDEX [IX_CollectionCipher_CipherId]
ON [dbo].[CollectionCipher]([CipherId] ASC);

View File

@@ -1,8 +1,8 @@
CREATE TABLE [dbo].[SubvaultGroup] (
[SubvaultId] UNIQUEIDENTIFIER NOT NULL,
CREATE TABLE [dbo].[CollectionGroup] (
[CollectionId] UNIQUEIDENTIFIER NOT NULL,
[GroupId] UNIQUEIDENTIFIER NOT NULL,
CONSTRAINT [PK_SubvaultGroup] PRIMARY KEY CLUSTERED ([SubvaultId] ASC, [GroupId] ASC),
CONSTRAINT [FK_SubvaultGroup_Group] FOREIGN KEY ([GroupId]) REFERENCES [dbo].[Group] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_SubvaultGroup_Subvault] FOREIGN KEY ([SubvaultId]) REFERENCES [dbo].[Subvault] ([Id])
CONSTRAINT [PK_CollectionGroup] PRIMARY KEY CLUSTERED ([CollectionId] ASC, [GroupId] ASC),
CONSTRAINT [FK_CollectionGroup_Group] FOREIGN KEY ([GroupId]) REFERENCES [dbo].[Group] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_CollectionGroup_Collection] FOREIGN KEY ([CollectionId]) REFERENCES [dbo].[Collection] ([Id])
);

View File

@@ -1,17 +1,17 @@
CREATE TABLE [dbo].[SubvaultUser] (
CREATE TABLE [dbo].[CollectionUser] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[SubvaultId] UNIQUEIDENTIFIER NOT NULL,
[CollectionId] UNIQUEIDENTIFIER NOT NULL,
[OrganizationUserId] UNIQUEIDENTIFIER NOT NULL,
[ReadOnly] BIT NOT NULL,
[CreationDate] DATETIME2 (7) NOT NULL,
[RevisionDate] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_SubvaultUser] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_SubvaultUser_OrganizationUser] FOREIGN KEY ([OrganizationUserId]) REFERENCES [dbo].[OrganizationUser] ([Id]),
CONSTRAINT [FK_SubvaultUser_Subvault] FOREIGN KEY ([SubvaultId]) REFERENCES [dbo].[Subvault] ([Id]) ON DELETE CASCADE
CONSTRAINT [PK_CollectionUser] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_CollectionUser_OrganizationUser] FOREIGN KEY ([OrganizationUserId]) REFERENCES [dbo].[OrganizationUser] ([Id]),
CONSTRAINT [FK_CollectionUser_Collection] FOREIGN KEY ([CollectionId]) REFERENCES [dbo].[Collection] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_SubvaultUser_SubvaultId]
ON [dbo].[SubvaultUser]([SubvaultId] ASC);
CREATE NONCLUSTERED INDEX [IX_CollectionUser_CollectionId]
ON [dbo].[CollectionUser]([CollectionId] ASC);

View File

@@ -8,7 +8,7 @@ SELECT
ISNULL(U.[Email], OU.[Email]) Email,
OU.[Status],
OU.[Type],
OU.[AccessAllSubvaults]
OU.[AccessAllCollections]
FROM
[dbo].[OrganizationUser] OU
LEFT JOIN

View File

@@ -1,12 +1,12 @@
CREATE VIEW [dbo].[SubvaultUserSubvaultDetailsView]
CREATE VIEW [dbo].[CollectionUserCollectionDetailsView]
AS
SELECT
SU.[Id],
SU.[OrganizationUserId],
S.[Name],
S.[Id] SubvaultId,
S.[Id] CollectionId,
SU.[ReadOnly]
FROM
[dbo].[SubvaultUser] SU
[dbo].[CollectionUser] SU
INNER JOIN
[dbo].[Subvault] S ON S.[Id] = SU.[SubvaultId]
[dbo].[Collection] S ON S.[Id] = SU.[CollectionId]

View File

@@ -1,18 +1,18 @@
CREATE VIEW [dbo].[SubvaultUserUserDetailsView]
CREATE VIEW [dbo].[CollectionUserUserDetailsView]
AS
SELECT
OU.[Id] AS [OrganizationUserId],
OU.[AccessAllSubvaults],
OU.[AccessAllCollections],
SU.[Id],
SU.[SubvaultId],
SU.[CollectionId],
U.[Name],
ISNULL(U.[Email], OU.[Email]) Email,
OU.[Status],
OU.[Type],
CASE WHEN OU.[AccessAllSubvaults] = 0 AND SU.[ReadOnly] = 1 THEN 1 ELSE 0 END [ReadOnly]
CASE WHEN OU.[AccessAllCollections] = 0 AND SU.[ReadOnly] = 1 THEN 1 ELSE 0 END [ReadOnly]
FROM
[dbo].[OrganizationUser] OU
LEFT JOIN
[dbo].[SubvaultUser] SU ON OU.[AccessAllSubvaults] = 0 AND SU.[OrganizationUserId] = OU.[Id]
[dbo].[CollectionUser] SU ON OU.[AccessAllCollections] = 0 AND SU.[OrganizationUserId] = OU.[Id]
LEFT JOIN
[dbo].[User] U ON U.[Id] = OU.[UserId]

View File

@@ -1,6 +1,6 @@
CREATE VIEW [dbo].[SubvaultUserView]
CREATE VIEW [dbo].[CollectionUserView]
AS
SELECT
*
FROM
[dbo].[SubvaultUser]
[dbo].[CollectionUser]

View File

@@ -1,6 +1,6 @@
CREATE VIEW [dbo].[SubvaultView]
CREATE VIEW [dbo].[CollectionView]
AS
SELECT
*
FROM
[dbo].[Subvault]
[dbo].[Collection]