Exemple #1
0
        public async Task <ActionResult> ResetPassword(ResetPasswordFormModel formModel)
        {
            var form = Service.GetForm(SiteContext.Current, formModel.form_type);

            if (form != null)
            {
                var formErrors = GetFormErrors(ModelState);

                string userId = HttpContext.Request.Cookies[CustomerIdCookie] != null ?
                                HttpContext.Request.Cookies[CustomerIdCookie].Value : null;
                string token = HttpContext.Request.Cookies[ResetCustomerPasswordTokenCookie] != null ?
                               HttpContext.Request.Cookies[ResetCustomerPasswordTokenCookie].Value : null;

                if (userId == null && token == null)
                {
                    Context.ErrorMessage = "Not enough info for reseting password";

                    return(View("error"));
                }

                if (formErrors == null)
                {
                    var result = await SecurityService.ResetPasswordAsync(userId, token, formModel.Password);

                    if (result.Succeeded)
                    {
                        HttpContext.Response.Cookies.Remove(CustomerIdCookie);
                        HttpContext.Response.Cookies.Remove(ResetCustomerPasswordTokenCookie);

                        return(View("password_reseted"));
                    }
                    else
                    {
                        form.Errors             = new SubmitFormErrors("form", result.Errors.First());
                        form.PostedSuccessfully = false;
                    }
                }
                else
                {
                    form.Errors             = formErrors;
                    form.PostedSuccessfully = false;
                }
            }
            else
            {
                Context.ErrorMessage = "Liquid error: Form context was not found.";

                return(View("error"));
            }

            return(View("customers/reset_password"));
        }
Exemple #2
0
        public IActionResult ResetPassword(string code = null)
        {
            if (code == null)
            {
                throw new ApplicationException("A code must be supplied for password reset.");
            }

            var model = new ResetPasswordFormModel {
                Code = code
            };

            return(View(model));
        }
        public virtual ActionResult ResetPassword(Guid userId)
        {
            var userToReset = db.Get <User>().Where(u => u.Id == userId).Single();

            var model = new ResetPasswordFormModel()
            {
                UserId             = userToReset.Id,
                UserName           = userToReset.UserName,
                SendToEmailAddress = userToReset.EmailAddress
            };

            return(PartialView(MVC.User.Views.ResetPassword, model, "ResetPassword"));
        }
        public virtual ActionResult ResetPassword(Guid userId, [Bind(Prefix = "ResetPassword")] ResetPasswordFormModel model)
        {
            var userToReset = db.Get <User>().Where(u => u.Id == userId).Single();

            if (ModelState.IsValid)
            {
                try
                {
                    var newPassword = userToReset.ResetPassword();

                    if (!string.Equals(model.SendToEmailAddress, userToReset.EmailAddress, StringComparison.InvariantCultureIgnoreCase))
                    {
                        var mailContent = htmlTemplateManager.GetHtml("MailTemplates/UserPasswordReset")
                                          .Replace("{Username}", userToReset.UserName)
                                          .Replace("{Password}", newPassword)
                                          .Replace("{SignInUrl}", Url.RouteUrl("Home"));

                        var message = new Discover.Mail.MailMessage();

                        message.To.Add(new Discover.Mail.MailAddress()
                        {
                            Address = model.SendToEmailAddress
                        });
                        message.Subject    = "Your Password Has Been Reset";
                        message.Body       = mailContent;
                        message.IsBodyHtml = true;

                        mailer.Send(message);
                    }

                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("ResetPassword", ex.Message);
                }
            }

            if (!ModelState.IsValid)
            {
                model.UserName = userToReset.UserName;
            }

            return(ModelState.IsValid ?
                   Json(new { success = true }) :
                   Json(new { success = false, formWithErrorMessages = this.RenderPartialViewToString(MVC.User.Views.ResetPassword, model, "ResetPassword") }));
        }
Exemple #5
0
        public async Task <IActionResult> ResetPassword(ResetPasswordFormModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return(RedirectToAction(nameof(ResetPasswordConfirmation)));
            }
            var result = await userManager.ResetPasswordAsync(user, model.Code, model.Password);

            if (result.Succeeded)
            {
                return(RedirectToAction(nameof(ResetPasswordConfirmation)));
            }
            AddErrors(result);
            return(View());
        }
        public async Task <IActionResult> ResetPassword([FromRoute] string membershipId, [FromBody] ResetPasswordFormModel model)
        {
            var utilizer           = this.GetUtilizer();
            var resetPasswordToken = await this.userService.ResetPasswordAsync(utilizer, membershipId, model.UsernameOrEmailAddress);

            return(this.Ok(resetPasswordToken));
        }