1
0
mirror of https://github.com/bitwarden/server synced 2025-12-15 15:53:59 +00:00

[PM-19145] refactor organization service.import async (#5800)

* initial lift and shift

* extract function RemoveExistingExternalUsers

* Extract function RemoveExistingUsers()

* extract function OverwriteExisting()

* create new model for sync data

* extract add users to function, rename

* rename OrganizatinUserInvite for command, implement command

* implement command

* refactor groups logic

* fix imports

* remove old tests, fix imports

* fix namespace

* fix CommandResult useage

* tests wip

* wip

* wip

* remove redundant code, remove looping db call, refactor tests

* clean up

* remove looping db call with bulk method

* clean up

* remove orgId param to use id already in request

* change param

* cleanup params

* remove IReferenceEventService

* fix test

* fix tests

* cr feedback

* remove _timeProvider

* add xmldoc, refactor to make InviteOrganizationUsersCommand vNext instead of default

* switch back to command

* re-add old ImportAsync impl

* fix test

* add feature flag

* cleanup

* clean up

* fix tests

* wip

* wip

* add api integration tests for users WIP

* groups integration tests

* cleanup

* fix error from merging main

* fix tests

* cr feedback

* fix test

* fix test
This commit is contained in:
Brandon Treston
2025-07-22 17:30:25 -04:00
committed by GitHub
parent 6278fe7bc5
commit 947ae8db51
21 changed files with 1137 additions and 49 deletions

View File

@@ -2,6 +2,7 @@
using Bit.Api.IntegrationTest.Factories;
using Bit.Core.AdminConsole.Entities;
using Bit.Core.AdminConsole.OrganizationFeatures.Organizations;
using Bit.Core.AdminConsole.Repositories;
using Bit.Core.Billing.Enums;
using Bit.Core.Entities;
using Bit.Core.Enums;
@@ -78,6 +79,7 @@ public static class OrganizationTestHelpers
Status = userStatusType,
ExternalId = null,
AccessSecretsManager = accessSecretsManager,
Email = userEmail
};
if (permissions != null)
@@ -130,4 +132,20 @@ public static class OrganizationTestHelpers
await organizationDomainRepository.CreateAsync(verifiedDomain);
}
public static async Task<Group> CreateGroup(ApiApplicationFactory factory, Guid organizationId)
{
var groupRepository = factory.GetService<IGroupRepository>();
var group = new Group
{
OrganizationId = organizationId,
Id = new Guid(),
ExternalId = "bwtest-externalId",
Name = "bwtest"
};
await groupRepository.CreateAsync(group, new List<CollectionAccessSelection>());
return group;
}
}