mirror of
https://github.com/bitwarden/server.git
synced 2025-06-21 11:18:49 -05:00
[PM-15621] Address code review comments part 1
This commit is contained in:
parent
e5c62945cf
commit
9280c03beb
@ -588,10 +588,10 @@ public class OrganizationUsersController : Controller
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentUser = await _userService.GetUserByPrincipalAsync(User);
|
var currentUser = _userService.GetProperUserId(User); ;
|
||||||
if (currentUser == null)
|
if (currentUser == null)
|
||||||
{
|
{
|
||||||
return Unauthorized();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = await _deleteClaimedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Id);
|
var result = await _deleteClaimedOrganizationUserAccountCommand.DeleteUserAsync(orgId, id, currentUser.Id);
|
||||||
|
@ -59,26 +59,28 @@ public class DeleteClaimedOrganizationUserAccountCommand : IDeleteClaimedOrganiz
|
|||||||
|
|
||||||
public async Task<CommandResult<DeleteUserResponse>> DeleteUserAsync(Guid organizationId, Guid organizationUserId, Guid deletingUserId)
|
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 (result.Successes.Any())
|
||||||
|
|
||||||
if (error != null)
|
|
||||||
{
|
{
|
||||||
return error.ToFailure<DeleteUserValidationRequest, DeleteUserResponse>();
|
return new Success<DeleteUserResponse>(result.Successes.First());
|
||||||
}
|
}
|
||||||
|
|
||||||
var valid = result.ValidResults.First();
|
return new Failure<DeleteUserResponse>(result.Failures.First());
|
||||||
|
|
||||||
return new Success<DeleteUserResponse>(new DeleteUserResponse
|
|
||||||
{
|
|
||||||
OrganizationUserId = valid!.Value.OrganizationUserId
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Partial<DeleteUserResponse>> DeleteManyUsersAsync(Guid organizationId, IEnumerable<Guid> orgUserIds, Guid deletingUserId)
|
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 successes = result.ValidResults.Select(valid => new DeleteUserResponse { OrganizationUserId = valid.Value.OrganizationUser!.Id });
|
||||||
var errors = result.InvalidResults
|
var errors = result.InvalidResults
|
||||||
@ -88,22 +90,6 @@ public class DeleteClaimedOrganizationUserAccountCommand : IDeleteClaimedOrganiz
|
|||||||
return new Partial<DeleteUserResponse>(successes, errors);
|
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(
|
private List<DeleteUserValidationRequest> CreateRequests(
|
||||||
Guid organizationId,
|
Guid organizationId,
|
||||||
Guid deletingUserId,
|
Guid deletingUserId,
|
||||||
|
@ -10,5 +10,5 @@ public class DeleteUserValidationRequest
|
|||||||
public OrganizationUser? OrganizationUser { get; init; }
|
public OrganizationUser? OrganizationUser { get; init; }
|
||||||
public User? User { get; init; }
|
public User? User { get; init; }
|
||||||
public Guid DeletingUserId { get; init; }
|
public Guid DeletingUserId { get; init; }
|
||||||
public bool? IsClaimed { get; init; }
|
public bool IsClaimed { get; init; }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user