From f6035d888120c8ef1cff9c6f8d458b3c163cc797 Mon Sep 17 00:00:00 2001 From: Brandon Date: Fri, 30 May 2025 14:03:34 -0400 Subject: [PATCH] cleanup params --- .../Controllers/OrganizationController.cs | 4 +- .../ImportOrganizationUserCommand.cs | 41 ++++++++----------- .../IImportOrganizationUserCommand.cs | 4 +- .../ImportOrganizationUserCommandTests.cs | 4 +- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/src/Api/AdminConsole/Public/Controllers/OrganizationController.cs b/src/Api/AdminConsole/Public/Controllers/OrganizationController.cs index 05fc879255..5fddabf573 100644 --- a/src/Api/AdminConsole/Public/Controllers/OrganizationController.cs +++ b/src/Api/AdminConsole/Public/Controllers/OrganizationController.cs @@ -3,7 +3,6 @@ using Bit.Api.AdminConsole.Public.Models.Request; using Bit.Api.Models.Public.Response; using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.Interfaces; using Bit.Core.Context; -using Bit.Core.Enums; using Bit.Core.Exceptions; using Bit.Core.Settings; using Microsoft.AspNetCore.Authorization; @@ -52,8 +51,7 @@ public class OrganizationController : Controller model.Groups.Select(g => g.ToImportedGroup(_currentContext.OrganizationId.Value)), model.Members.Where(u => !u.Deleted).Select(u => u.ToImportedOrganizationUser()), model.Members.Where(u => u.Deleted).Select(u => u.ExternalId), - model.OverwriteExisting.GetValueOrDefault(), - EventSystemUser.PublicApi); + model.OverwriteExisting.GetValueOrDefault()); return new OkResult(); } } diff --git a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommand.cs b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommand.cs index 7f4d471fe3..bbab5372fc 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommand.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommand.cs @@ -34,6 +34,8 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand private readonly IInviteOrganizationUsersCommand _inviteOrganizationUsersCommand; private readonly IPricingClient _pricingClient; + private readonly EventSystemUser _EventSystemUser = EventSystemUser.PublicApi; + public ImportOrganizationUserCommand(IOrganizationRepository organizationRepository, IOrganizationUserRepository organizationUserRepository, IPaymentService paymentService, @@ -62,8 +64,7 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand IEnumerable groups, IEnumerable newUsers, IEnumerable removeUserExternalIds, - bool overwriteExisting, - EventSystemUser eventSystemUser) + bool overwriteExisting) { var organization = await GetOrgById(organizationId); if (organization == null) @@ -95,13 +96,13 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand await OverwriteExisting(events, importUserData); } - await UpsertExistingUsers(existingUsers, newUsers, organization, importUserData); + await UpsertExistingUsers(organization, newUsers, importUserData); - await AddNewUsers(organization, newUsers, eventSystemUser, importUserData); + await AddNewUsers(organization, newUsers, importUserData); - await ImportGroups(organization, groups, eventSystemUser, importUserData); + await ImportGroups(organization, groups, importUserData); - await _eventService.LogOrganizationUserEventsAsync(events.Select(e => (e.ou, e.e, eventSystemUser, e.d))); + await _eventService.LogOrganizationUserEventsAsync(events.Select(e => (e.ou, e.e, _EventSystemUser, e.d))); await _referenceEventService.RaiseEventAsync( new ReferenceEvent(ReferenceEventType.DirectorySynced, organization, _currentContext)); @@ -144,10 +145,10 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand ); } - private async Task UpsertExistingUsers(IEnumerable existingUsers, + private async Task UpsertExistingUsers(Organization organization, IEnumerable newUsers, - Organization organization, - OrganizationUserImportData importUserData) + OrganizationUserImportData importUserData + ) { if (!newUsers.Any()) { @@ -155,15 +156,14 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand } // Marry existing users - var existingUsersEmailsDict = existingUsers + var existingUsersEmailsDict = importUserData.ExistingUsers .Where(u => string.IsNullOrWhiteSpace(u.ExternalId)) .ToDictionary(u => u.Email); var newUsersEmailsDict = newUsers.ToDictionary(u => u.Email); var newAndExistingUsersIntersection = existingUsersEmailsDict.Keys.Intersect(newUsersEmailsDict.Keys).ToList(); - var organizationUsers = (await _organizationUserRepository.GetManyAsync(existingUsers.Select(u => u.Id).ToList())).ToDictionary(u => u.Id); + var organizationUsers = (await _organizationUserRepository.GetManyAsync(importUserData.ExistingUsers.Select(u => u.Id).ToList())).ToDictionary(u => u.Id); var usersToUpsert = new List(); - foreach (var user in newAndExistingUsersIntersection) { var organizationUser = organizationUsers[existingUsersEmailsDict[user].Id]; @@ -179,7 +179,6 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand private async Task AddNewUsers(Organization organization, IEnumerable newUsers, - EventSystemUser eventSystemUser, OrganizationUserImportData importUserData) { @@ -242,7 +241,6 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand private async Task ImportGroups(Organization organization, IEnumerable groups, - EventSystemUser eventSystemUser, OrganizationUserImportData importUserData) { @@ -265,13 +263,11 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand ExistingExternalGroups = GetExistingExternalGroups(existingGroups) }; - await SaveNewGroups(importGroupData, importUserData, eventSystemUser); - await UpdateExistingGroups(importGroupData, importUserData, organization, eventSystemUser); + await SaveNewGroups(importGroupData, importUserData); + await UpdateExistingGroups(importGroupData, importUserData, organization); } - private async Task SaveNewGroups(OrganizationGroupImportData importGroupData, - OrganizationUserImportData importUserData, - EventSystemUser eventSystemUser) + private async Task SaveNewGroups(OrganizationGroupImportData importGroupData, OrganizationUserImportData importUserData) { var newGroups = importGroupData.Groups .Where(g => !importGroupData.ExistingExternalGroups.ToDictionary(g => g.ExternalId).ContainsKey(g.Group.ExternalId)) @@ -288,13 +284,12 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand } await _eventService.LogGroupEventsAsync( - savedGroups.Select(g => (g, EventType.Group_Created, (EventSystemUser?)eventSystemUser, (DateTime?)DateTime.UtcNow))); + savedGroups.Select(g => (g, EventType.Group_Created, (EventSystemUser?)_EventSystemUser, (DateTime?)DateTime.UtcNow))); } private async Task UpdateExistingGroups(OrganizationGroupImportData importGroupData, OrganizationUserImportData importUserData, - Organization organization, - EventSystemUser eventSystemUser) + Organization organization) { var updateGroups = importGroupData.ExistingExternalGroups .Where(g => importGroupData.GroupsDict.ContainsKey(g.ExternalId)) @@ -325,7 +320,7 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand } await _eventService.LogGroupEventsAsync( - updateGroups.Select(g => (g, EventType.Group_Updated, (EventSystemUser?)eventSystemUser, (DateTime?)DateTime.UtcNow))); + updateGroups.Select(g => (g, EventType.Group_Updated, (EventSystemUser?)_EventSystemUser, (DateTime?)DateTime.UtcNow))); } } diff --git a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/Interfaces/IImportOrganizationUserCommand.cs b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/Interfaces/IImportOrganizationUserCommand.cs index 4d932e62a2..4d9425e04f 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/Interfaces/IImportOrganizationUserCommand.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/Interfaces/IImportOrganizationUserCommand.cs @@ -1,5 +1,4 @@ using Bit.Core.AdminConsole.Models.Business; -using Bit.Core.Enums; using Bit.Core.Models.Business; namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.Interfaces; @@ -10,7 +9,6 @@ public interface IImportOrganizationUserCommand IEnumerable groups, IEnumerable newUsers, IEnumerable removeUserExternalIds, - bool overwriteExisting, - EventSystemUser eventSystemUser + bool overwriteExisting ); } diff --git a/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommandTests.cs b/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommandTests.cs index 41a8dc69d2..8105ca7964 100644 --- a/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommandTests.cs +++ b/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ImportOrganizationUserCommandTests.cs @@ -60,7 +60,7 @@ public class ImportOrganizationUserCommandTests sutProvider.GetDependency().InviteImportedOrganizationUsersAsync(Arg.Any()) .Returns(new Success(new InviteOrganizationUsersResponse(org.Id))); - await sutProvider.Sut.ImportAsync(org.Id, newGroups, newUsers, new List(), false, EventSystemUser.PublicApi); + await sutProvider.Sut.ImportAsync(org.Id, newGroups, newUsers, new List(), false); await sutProvider.GetDependency().Received(1) .InviteImportedOrganizationUsersAsync(Arg.Any()); @@ -112,7 +112,7 @@ public class ImportOrganizationUserCommandTests sutProvider.GetDependency().InviteImportedOrganizationUsersAsync(Arg.Any()) .Returns(new Success(new InviteOrganizationUsersResponse(org.Id))); - await sutProvider.Sut.ImportAsync(org.Id, newGroups, newUsers, new List(), false, EventSystemUser.PublicApi); + await sutProvider.Sut.ImportAsync(org.Id, newGroups, newUsers, new List(), false); await sutProvider.GetDependency().DidNotReceiveWithAnyArgs() .UpsertAsync(default);