1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-21 03:08:47 -05:00

[PM-15621] Address code review comments part 1

This commit is contained in:
Jimmy Vo 2025-04-17 13:29:43 -04:00
parent e5c62945cf
commit 9280c03beb
No known key found for this signature in database
GPG Key ID: 7CB834D6F4FFCA11
3 changed files with 17 additions and 31 deletions

View File

@ -588,10 +588,10 @@ public class OrganizationUsersController : Controller
return NotFound();
}
var currentUser = await _userService.GetUserByPrincipalAsync(User);
var currentUser = _userService.GetProperUserId(User); ;
if (currentUser == null)
{
return Unauthorized();
return NotFound();
}
var result = await _deleteClaimedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Id);

View File

@ -59,26 +59,28 @@ public class DeleteClaimedOrganizationUserAccountCommand : IDeleteClaimedOrganiz
public async Task<CommandResult<DeleteUserResponse>> DeleteUserAsync(Guid organizationId, Guid organizationUserId, Guid deletingUserId)
{
var result = await InternalDeleteManyUsersAsync(organizationId, [organizationUserId], deletingUserId);
var result = await DeleteManyUsersAsync(organizationId, [organizationUserId], deletingUserId);
var error = result.InvalidResults.FirstOrDefault()?.Errors.FirstOrDefault();
if (error != null)
if (result.Successes.Any())
{
return error.ToFailure<DeleteUserValidationRequest, DeleteUserResponse>();
return new Success<DeleteUserResponse>(result.Successes.First());
}
var valid = result.ValidResults.First();
return new Success<DeleteUserResponse>(new DeleteUserResponse
{
OrganizationUserId = valid!.Value.OrganizationUserId
});
return new Failure<DeleteUserResponse>(result.Failures.First());
}
public async Task<Partial<DeleteUserResponse>> DeleteManyUsersAsync(Guid organizationId, IEnumerable<Guid> orgUserIds, Guid deletingUserId)
{
var result = await InternalDeleteManyUsersAsync(organizationId, orgUserIds, deletingUserId);
var orgUsers = await _organizationUserRepository.GetManyAsync(orgUserIds);
var users = await GetUsersAsync(orgUsers);
var claimedStatuses = await _getOrganizationUsersClaimedStatusQuery.GetUsersOrganizationClaimedStatusAsync(organizationId, orgUserIds);
var requests = CreateRequests(organizationId, deletingUserId, orgUserIds, orgUsers, users, claimedStatuses);
var result = await _deleteClaimedOrganizationUserAccountValidator.ValidateAsync(requests);
await CancelPremiumsAsync(result.ValidResults);
await HandleUserDeletionsAsync(result.ValidResults);
await LogDeletedOrganizationUsersAsync(result.ValidResults);
var successes = result.ValidResults.Select(valid => new DeleteUserResponse { OrganizationUserId = valid.Value.OrganizationUser!.Id });
var errors = result.InvalidResults
@ -88,22 +90,6 @@ public class DeleteClaimedOrganizationUserAccountCommand : IDeleteClaimedOrganiz
return new Partial<DeleteUserResponse>(successes, errors);
}
private async Task<PartialValidationResult<DeleteUserValidationRequest>> InternalDeleteManyUsersAsync(Guid organizationId, IEnumerable<Guid> orgUserIds, Guid deletingUserId)
{
var orgUsers = await _organizationUserRepository.GetManyAsync(orgUserIds);
var users = await GetUsersAsync(orgUsers);
var claimedStatuses = await _getOrganizationUsersClaimedStatusQuery.GetUsersOrganizationClaimedStatusAsync(organizationId, orgUserIds);
var requests = CreateRequests(organizationId, deletingUserId, orgUserIds, orgUsers, users, claimedStatuses);
var results = await _deleteClaimedOrganizationUserAccountValidator.ValidateAsync(requests);
await CancelPremiumsAsync(results.ValidResults);
await HandleUserDeletionsAsync(results.ValidResults);
await LogDeletedOrganizationUsersAsync(results.ValidResults);
return results;
}
private List<DeleteUserValidationRequest> CreateRequests(
Guid organizationId,
Guid deletingUserId,

View File

@ -10,5 +10,5 @@ public class DeleteUserValidationRequest
public OrganizationUser? OrganizationUser { get; init; }
public User? User { get; init; }
public Guid DeletingUserId { get; init; }
public bool? IsClaimed { get; init; }
public bool IsClaimed { get; init; }
}