public virtual ForgotPasswordViewModel Build(ForgotPasswordFormViewModel forgotPasswordForm)
        {
            var model = Build();

            model.ForgotPasswordForm = forgotPasswordForm;
            return(model);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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" }));
        }
Exemplo n.º 4
0
 /// <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);