diff --git a/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs b/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs index 583101c0f7..4251380464 100644 --- a/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs +++ b/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs @@ -594,7 +594,7 @@ public class OrganizationUsersController : Controller return NotFound(); } - var result = await _deleteClaimedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Id); + var result = await _deleteClaimedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Value); if (result is Success) { @@ -626,7 +626,7 @@ public class OrganizationUsersController : Controller return MapToOrganizationUserBulkResponseModel(result); } - private static ListResponseModel MapToOrganizationUserBulkResponseModel(Partial result) + private static ListResponseModel MapToOrganizationUserBulkResponseModel(Partial result) { var failures = result.Failures.Select(failure => new OrganizationUserBulkResponseModel(failure.ErroredValue.OrganizationUserId, failure.Message)); var successes = result.Successes.Select(success => new OrganizationUserBulkResponseModel(success.OrganizationUserId, string.Empty)); diff --git a/test/Api.Test/AdminConsole/Controllers/OrganizationUsersControllerTests.cs b/test/Api.Test/AdminConsole/Controllers/OrganizationUsersControllerTests.cs index c0cf9997a7..f19fbf80e3 100644 --- a/test/Api.Test/AdminConsole/Controllers/OrganizationUsersControllerTests.cs +++ b/test/Api.Test/AdminConsole/Controllers/OrganizationUsersControllerTests.cs @@ -17,6 +17,7 @@ using Bit.Core.Entities; using Bit.Core.Enums; using Bit.Core.Exceptions; using Bit.Core.Models.Business; +using Bit.Core.Models.Commands; using Bit.Core.Models.Data; using Bit.Core.Models.Data.Organizations; using Bit.Core.Models.Data.Organizations.OrganizationUsers; @@ -360,26 +361,32 @@ public class OrganizationUsersControllerTests sutProvider.Sut.DeleteAccount(orgId, id)); } - // [Theory] - // [BitAutoData] - // public async Task BulkDeleteAccount_WhenUserCanManageUsers_Success( - // Guid orgId, OrganizationUserBulkRequestModel model, User currentUser, - // List<(Guid, string)> deleteResults, SutProvider sutProvider) - // { - // sutProvider.GetDependency().ManageUsers(orgId).Returns(true); - // sutProvider.GetDependency().GetUserByPrincipalAsync(default).ReturnsForAnyArgs(currentUser); - // sutProvider.GetDependency() - // .DeleteManyUsersAsync(orgId, model.Ids, currentUser.Id) - // .Returns(deleteResults); - // - // var response = await sutProvider.Sut.BulkDeleteAccount(orgId, model); - // - // Assert.Equal(deleteResults.Count, response.Data.Count()); - // Assert.True(response.Data.All(r => deleteResults.Any(res => res.Item1 == r.Id && res.Item2 == r.Error))); - // await sutProvider.GetDependency() - // .Received(1) - // .DeleteManyUsersAsync(orgId, model.Ids, currentUser.Id); - // } + [Theory] + [BitAutoData] + public async Task BulkDeleteAccount_WhenUserCanManageUsers_Success( + Guid orgId, OrganizationUserBulkRequestModel model, + User currentUser, + Partial deleteResults, + SutProvider sutProvider) + { + sutProvider.GetDependency().ManageUsers(orgId).Returns(true); + sutProvider.GetDependency().GetUserByPrincipalAsync(default).ReturnsForAnyArgs(currentUser); + sutProvider.GetDependency() + .DeleteManyUsersAsync(orgId, model.Ids, currentUser.Id) + .Returns(deleteResults); + + var response = await sutProvider.Sut.BulkDeleteAccount(orgId, model); + + var totalRecordCount = deleteResults.Successes.Length + deleteResults.Failures.Length; + + Assert.Equal(totalRecordCount, response.Data.Count()); + Assert.True(deleteResults.Failures.All(result => response.Data.Any(resp => resp.Error == result.Message))); + Assert.True(deleteResults.Successes.All(result => response.Data.Any(resp => resp.Id == result.OrganizationUserId))); + + await sutProvider.GetDependency() + .Received(1) + .DeleteManyUsersAsync(orgId, model.Ids, currentUser.Id); + } [Theory] [BitAutoData]