public virtual ForgotPasswordViewModel Build(ForgotPasswordFormViewModel forgotPasswordForm) { var model = Build(); model.ForgotPasswordForm = forgotPasswordForm; return(model); }
public override bool IsValidForgotPasswordForm(ModelState modelState, ForgotPasswordFormViewModel forgotPasswordForm) { var prefix = nameof(forgotPasswordForm); var emailField = $"{prefix}.{nameof(forgotPasswordForm.Email)}"; var validationRules = new List <ValidationRuleItem <ForgotPasswordFormViewModel> >() { new ValidationRuleItem <ForgotPasswordFormViewModel> { Field = emailField, Rule = model => !string.IsNullOrEmpty(model.Email), ErrorMessage = "validation.required".AsWebSiteString() }, new ValidationRuleItem <ForgotPasswordFormViewModel> { Field = emailField, Rule = model => _userValidationService.IsValidEmail(model.Email), ErrorMessage = "validation.email".AsWebSiteString() } }; return(forgotPasswordForm.IsValid(validationRules, modelState)); }
public async Task <IActionResult> ForgotPassword(ForgotPasswordFormViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } var user = await _userManager.FindByEmailAsync(viewModel.Email); if (user != null && await _userManager.IsEmailConfirmedAsync(user)) { var token = await _userManager.GeneratePasswordResetTokenAsync(user); var passwordResetLink = Url.Action("ResetPassword", "Users", new { email = viewModel.Email, Token = token }, Request.Scheme); await SendConfirmationEmailAsync(token, user.Email, passwordResetLink, 2); return(View(nameof(ForgotPasswordConfirmation))); } return(View(nameof(Error), new { Message = "Email não encontrado" })); }
/// <summary> /// Validate the forgot password form /// </summary> /// <param name="modelState">The model state</param> /// <param name="forgotPasswordForm">The forgot password form view model</param> /// <returns>True if the form is valid, otherwise false</returns> public abstract bool IsValidForgotPasswordForm(ModelStateDictionary modelState, ForgotPasswordFormViewModel forgotPasswordForm);