Example #1
0
        public async Task <IActionResult> ChangePassword(ChangePasswordBindingModel model)
        {
            if (applicationUser == null)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!IsPasswordValid(model.NewPassword))
            {
                ModelState.AddModelError("Password", PasswordRequirementMessage(model.NewPassword));
                return(BadRequest(ModelState));
            }

            applicationUser.ForcedPasswordChange = false;
            IdentityResult result = await userManager.ChangePasswordAsync(applicationUser, model.OldPassword, model.NewPassword).ConfigureAwait(false);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }
            return(Ok());
        }