public ActionResult ResetPassword(string guid) { var userSetNewPasswordModel = new SetNewPasswordModel() { Id = Guid.Parse(guid) }; return(View("ResetPassword", userSetNewPasswordModel)); }
public ActionResult ResetPassword(SetNewPasswordModel userSetNewPasswordModel) { if (ModelState.IsValid) { userSetNewPasswordModel.SetPassword(); return(View("PasswordSet")); } return(View("ResetPassword")); }
public async Task <ActionResult> SetNewPassword(SetNewPasswordModel model) { var answer = new SetNewPasswordModel { RequestId = model.RequestId }; if (!ModelState.IsValid) { answer.Errors = ModelState.Values.SelectMany(state => state.Errors.Select(error => error.ErrorMessage)).ToArray(); return(View(answer)); } var userId = requestRepo.FindUserId(model.RequestId); if (userId == null) { answer.Errors = new[] { "Запрос не найден" }; answer.RequestId = null; return(View(answer)); } var result = await userManager.RemovePasswordAsync(userId); if (!result.Succeeded) { answer.Errors = result.Errors.ToArray(); return(View(answer)); } result = await userManager.AddPasswordAsync(userId, model.NewPassword); if (!result.Succeeded) { answer.Errors = result.Errors.ToArray(); return(View(answer)); } metricSender.SendCount("restore_password.set_new_password"); await requestRepo.DeleteRequest(model.RequestId); var user = await userManager.FindByIdAsync(userId); if (user == null) { answer.Errors = new[] { "Пользователь был удалён администраторами" }; return(View(answer)); } await AuthenticationManager.LoginAsync(HttpContext, user, false); return(RedirectToAction("Index", "Home")); }
public async Task SetNewPassword_ResetPassSuccess_Ok() { UserController controller = new UserController(_loggerMock.Object, MockUserService(true, true, true, true, true, true, true), MockEmailService(true), _envSettingsMock.Object); SetNewPasswordModel setNewPassModel = CreateSetNewPasswordModel(); var result = await controller.SetNewPassword(setNewPassModel); Assert.IsType <OkResult>(result); }
public async Task SetNewPassword_UserNotExists_BadRequest() { UserController controller = new UserController(_loggerMock.Object, MockUserService(true, false), MockEmailService(true), _envSettingsMock.Object); SetNewPasswordModel setNewPassModel = CreateSetNewPasswordModel(); var result = await controller.SetNewPassword(setNewPassModel); Assert.IsType <BadRequestResult>(result); }
public async Task <bool> SetNewPassword(SetNewPasswordModel model, CancellationToken cancellationToken) { var user = await _userRepository.GetByIdAsync(cancellationToken, new Guid(User.FindFirstValue(ClaimTypes.NameIdentifier))); if (!await _userManager.CheckPasswordAsync(user, model.OldPassword)) { throw new AppException("رمزعبور قدیمی اشتباه است !"); } var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.Password); return(result.Succeeded); }
public async Task <IActionResult> SetNewPassword([FromBody] SetNewPasswordModel body) { var user = await _userService.GetUserByIdAsync(body.UserId); if (user == null) { _logger.LogError($"Invalid password reset attemp. User with id {body.UserId} doesn't exist."); return(BadRequest()); } var result = await _userService.ResetPasswordAsync(user, body.Token, body.Password); if (!result.Succeeded) { _logger.LogInformation(ControllerExtensions.IdentityErrorBuilder($"Error when resetting password for user {user.Email}. Identity errors: ", result.Errors)); Dictionary <string, string[]> identityErrors = ControllerExtensions.IdentityErrorsToDictionary(result.Errors); return(ValidationError(identityErrors)); } return(Ok()); }