public async ValueTask <IActionResult> Put([FromBody] PatchKnownPassword model) { if (ModelState.IsValid) { bool succeeded = await _acc.ChangePassword(model); if (succeeded) { return(Ok(new { succeeded })); } } return(BadRequest(new { Errors = ModelState.Values.SelectMany(e => e.Errors).ToList() })); }
public async ValueTask <bool> ChangePassword(PatchKnownPassword patch) { ApplicationUser user = await GetUserById(patch.Id); if (user != null) { string passwordHash = Hash.GetHashedValue(patch.OldPassword); if (passwordHash == user.PasswordHash) { string newHashedPassword = Hash.GetHashedValue(patch.NewPassword); user.PasswordHash = newHashedPassword; return(await UpdateUser(user)); } } return(false); }