mirror of
https://github.com/bitwarden/server.git
synced 2026-02-16 05:43:20 +08:00
Adjust repository methods
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
-- if a default collection already exists before attempting to create one.
|
||||
|
||||
CREATE PROCEDURE [dbo].[Collection_UpsertDefaultCollection]
|
||||
@CollectionId UNIQUEIDENTIFIER,
|
||||
@OrganizationId UNIQUEIDENTIFIER,
|
||||
@OrganizationUserId UNIQUEIDENTIFIER,
|
||||
@Name VARCHAR(MAX),
|
||||
@@ -13,70 +14,69 @@ AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE @CollectionId UNIQUEIDENTIFIER;
|
||||
DECLARE @ExistingCollectionId UNIQUEIDENTIFIER;
|
||||
|
||||
-- Check if this organization user already has a default collection
|
||||
SELECT @CollectionId = c.Id
|
||||
SELECT @ExistingCollectionId = c.Id
|
||||
FROM [dbo].[Collection] c
|
||||
INNER JOIN [dbo].[CollectionUser] cu ON cu.CollectionId = c.Id
|
||||
WHERE cu.OrganizationUserId = @OrganizationUserId
|
||||
AND c.OrganizationId = @OrganizationId
|
||||
AND c.Type = 1; -- CollectionType.DefaultUserCollection
|
||||
|
||||
-- If no default collection exists, create one
|
||||
IF @CollectionId IS NULL
|
||||
BEGIN
|
||||
SET @CollectionId = NEWID();
|
||||
SET @WasCreated = 1;
|
||||
|
||||
-- Insert Collection
|
||||
INSERT INTO [dbo].[Collection]
|
||||
(
|
||||
[Id],
|
||||
[OrganizationId],
|
||||
[Name],
|
||||
[ExternalId],
|
||||
[CreationDate],
|
||||
[RevisionDate],
|
||||
[DefaultUserCollectionEmail],
|
||||
[Type]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@CollectionId,
|
||||
@OrganizationId,
|
||||
@Name,
|
||||
NULL, -- ExternalId
|
||||
@CreationDate,
|
||||
@RevisionDate,
|
||||
NULL, -- DefaultUserCollectionEmail
|
||||
1 -- CollectionType.DefaultUserCollection
|
||||
);
|
||||
|
||||
-- Insert CollectionUser
|
||||
INSERT INTO [dbo].[CollectionUser]
|
||||
(
|
||||
[CollectionId],
|
||||
[OrganizationUserId],
|
||||
[ReadOnly],
|
||||
[HidePasswords],
|
||||
[Manage]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@CollectionId,
|
||||
@OrganizationUserId,
|
||||
0, -- ReadOnly = false
|
||||
0, -- HidePasswords = false
|
||||
1 -- Manage = true
|
||||
);
|
||||
|
||||
-- Bump user account revision dates
|
||||
EXEC [dbo].[User_BumpAccountRevisionDateByCollectionId] @CollectionId, @OrganizationId;
|
||||
END
|
||||
ELSE
|
||||
-- If collection already exists, return early
|
||||
IF @ExistingCollectionId IS NOT NULL
|
||||
BEGIN
|
||||
SET @WasCreated = 0;
|
||||
RETURN;
|
||||
END
|
||||
|
||||
-- Create new default collection
|
||||
SET @WasCreated = 1;
|
||||
|
||||
-- Insert Collection
|
||||
INSERT INTO [dbo].[Collection]
|
||||
(
|
||||
[Id],
|
||||
[OrganizationId],
|
||||
[Name],
|
||||
[ExternalId],
|
||||
[CreationDate],
|
||||
[RevisionDate],
|
||||
[DefaultUserCollectionEmail],
|
||||
[Type]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@CollectionId,
|
||||
@OrganizationId,
|
||||
@Name,
|
||||
NULL, -- ExternalId
|
||||
@CreationDate,
|
||||
@RevisionDate,
|
||||
NULL, -- DefaultUserCollectionEmail
|
||||
1 -- CollectionType.DefaultUserCollection
|
||||
);
|
||||
|
||||
-- Insert CollectionUser
|
||||
INSERT INTO [dbo].[CollectionUser]
|
||||
(
|
||||
[CollectionId],
|
||||
[OrganizationUserId],
|
||||
[ReadOnly],
|
||||
[HidePasswords],
|
||||
[Manage]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@CollectionId,
|
||||
@OrganizationUserId,
|
||||
0, -- ReadOnly = false
|
||||
0, -- HidePasswords = false
|
||||
1 -- Manage = true
|
||||
);
|
||||
|
||||
-- Bump user account revision dates
|
||||
EXEC [dbo].[User_BumpAccountRevisionDateByCollectionId] @CollectionId, @OrganizationId;
|
||||
END
|
||||
GO
|
||||
|
||||
Reference in New Issue
Block a user