[Greenfield] Allow passing email instead of user id in API (#4732)

This commit is contained in:
Nicolas Dorier
2023-03-03 21:24:27 +09:00
committed by GitHub
parent 0406b420c8
commit 5caa0e0722
9 changed files with 56 additions and 37 deletions

View File

@@ -69,22 +69,22 @@ namespace BTCPayServer.Controllers.Greenfield
[HttpGet("~/api/v1/users/{idOrEmail}")]
public async Task<IActionResult> GetUser(string idOrEmail)
{
var user = (await _userManager.FindByIdAsync(idOrEmail)) ?? await _userManager.FindByEmailAsync(idOrEmail);
var user = await _userManager.FindByIdOrEmail(idOrEmail);
if (user != null)
{
return Ok(await FromModel(user));
}
return UserNotFound();
return this.UserNotFound();
}
[Authorize(Policy = Policies.CanModifyServerSettings, AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/users/{idOrEmail}/lock")]
public async Task<IActionResult> LockUser(string idOrEmail, LockUserRequest request)
{
var user = await _userManager.FindByIdAsync(idOrEmail) ?? await _userManager.FindByEmailAsync(idOrEmail);
var user = await _userManager.FindByIdOrEmail(idOrEmail);
if (user is null)
{
return UserNotFound();
return this.UserNotFound();
}
var success = await _userService.ToggleUser(user.Id, request.Locked ? DateTimeOffset.MaxValue : null);
@@ -223,7 +223,7 @@ namespace BTCPayServer.Controllers.Greenfield
var user = await _userManager.FindByIdAsync(userId);
if (user == null)
{
return UserNotFound();
return this.UserNotFound();
}
// We can safely delete the user if it's not an admin user
@@ -251,12 +251,5 @@ namespace BTCPayServer.Controllers.Greenfield
var roles = (await _userManager.GetRolesAsync(data)).ToArray();
return UserService.FromModel(data, roles);
}
private IActionResult UserNotFound()
{
return this.CreateAPIError(404, "user-not-found", "The user was not found");
}
}
}