Example #1
0
        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() }));
        }
Example #2
0
        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);
        }