From dcc2cc7387ebf2990620903c8d628b908e5e2032 Mon Sep 17 00:00:00 2001 From: Jimmy Vo Date: Mon, 7 Apr 2025 10:16:36 -0400 Subject: [PATCH] [PM-15621] Ready for app code review. --- .../Controllers/OrganizationUsersController.cs | 7 +++++++ .../DeleteManagedOrganizationUserAccountCommand.cs | 8 ++++++-- .../DeleteManagedOrganizationUserAccountValidator.cs | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs b/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs index 4ac2879b9d..f260f9e66d 100644 --- a/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs +++ b/src/Api/AdminConsole/Controllers/OrganizationUsersController.cs @@ -23,6 +23,7 @@ using Bit.Core.Enums; using Bit.Core.Exceptions; using Bit.Core.Models.Business; using Bit.Core.Models.Commands; +using Bit.Core.Models.Data.Organizations; using Bit.Core.Models.Data.Organizations.OrganizationUsers; using Bit.Core.OrganizationFeatures.OrganizationSubscriptions.Interface; using Bit.Core.OrganizationFeatures.OrganizationUsers.Interfaces; @@ -595,6 +596,12 @@ public class OrganizationUsersController : Controller var result = await _deleteManagedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Id); + if (result is Success) + { + return Ok(); + + } + return result.MapToActionResultWithSingleErrorMessage(); } diff --git a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountCommand.cs b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountCommand.cs index 3e03cdee9e..9b2b6e2ddb 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountCommand.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountCommand.cs @@ -13,6 +13,7 @@ using Bit.Core.Services; using Bit.Core.Tools.Enums; using Bit.Core.Tools.Models.Business; using Bit.Core.Tools.Services; +using Microsoft.Extensions.Logging; namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers; @@ -27,6 +28,7 @@ public class DeleteManagedOrganizationUserAccountCommand : IDeleteManagedOrganiz private readonly IOrganizationUserRepository _organizationUserRepository; private readonly IUserRepository _userRepository; private readonly ICurrentContext _currentContext; + private readonly ILogger _logger; private readonly IReferenceEventService _referenceEventService; private readonly IPushNotificationService _pushService; @@ -38,6 +40,7 @@ public class DeleteManagedOrganizationUserAccountCommand : IDeleteManagedOrganiz IOrganizationUserRepository organizationUserRepository, IUserRepository userRepository, ICurrentContext currentContext, + ILogger logger, IReferenceEventService referenceEventService, IPushNotificationService pushService) { @@ -48,6 +51,7 @@ public class DeleteManagedOrganizationUserAccountCommand : IDeleteManagedOrganiz _organizationUserRepository = organizationUserRepository; _userRepository = userRepository; _currentContext = currentContext; + _logger = logger; _referenceEventService = referenceEventService; _pushService = pushService; } @@ -184,9 +188,9 @@ public class DeleteManagedOrganizationUserAccountCommand : IDeleteManagedOrganiz { await _userService.CancelPremiumAsync(user); } - catch (GatewayException) + catch (GatewayException exception) { - + _logger.LogWarning(exception, "Failed to cancel the user's premium."); } } } diff --git a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountValidator.cs b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountValidator.cs index 3bf0202c14..4ed1bcd9f5 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountValidator.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/DeleteManagedOrganizationUserAccountValidator.cs @@ -116,7 +116,7 @@ public class DeleteManagedOrganizationUserAccountValidator( private static ValidationResult PreventSelfDeletion(DeleteUserValidationRequest request) { - if (request.OrganizationUser?.UserId == request.DeletingUserId) + if (request.OrganizationUser.UserId == request.DeletingUserId) { return new Invalid(new BadRequestError("You cannot delete yourself.", request)); } @@ -126,7 +126,7 @@ public class DeleteManagedOrganizationUserAccountValidator( private async Task> EnsureOnlyOwnersCanDeleteOwnersAsync(DeleteUserValidationRequest request) { - if (request.OrganizationUser?.Type != OrganizationUserType.Owner) + if (request.OrganizationUser.Type != OrganizationUserType.Owner) { return new Valid(request); }