mirror of
https://github.com/bitwarden/server
synced 2025-12-31 23:53:17 +00:00
renaming subvault => collection
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -14,7 +14,7 @@ BEGIN
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
[dbo].[SubvaultUserSubvaultDetailsView]
|
||||
[dbo].[CollectionUserCollectionDetailsView]
|
||||
WHERE
|
||||
[OrganizationUserId] = @Id
|
||||
END
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -6,7 +6,7 @@ BEGIN
|
||||
|
||||
DELETE
|
||||
FROM
|
||||
[dbo].[SubvaultUser]
|
||||
[dbo].[CollectionUser]
|
||||
WHERE
|
||||
[OrganizationUserId] = @Id
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
;
|
||||
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
CREATE PROCEDURE [dbo].[SubvaultUser_ReadCanEditByCipherIdUserId]
|
||||
CREATE PROCEDURE [dbo].[CollectionUser_ReadCanEditByCipherIdUserId]
|
||||
@UserId UNIQUEIDENTIFIER,
|
||||
@CipherId AS UNIQUEIDENTIFIER
|
||||
AS
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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])
|
||||
);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
@@ -1,6 +1,6 @@
|
||||
CREATE VIEW [dbo].[SubvaultUserView]
|
||||
CREATE VIEW [dbo].[CollectionUserView]
|
||||
AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
[dbo].[SubvaultUser]
|
||||
[dbo].[CollectionUser]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
CREATE VIEW [dbo].[SubvaultView]
|
||||
CREATE VIEW [dbo].[CollectionView]
|
||||
AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
[dbo].[Subvault]
|
||||
[dbo].[Collection]
|
||||
|
||||
Reference in New Issue
Block a user