public ActionResult ForgotPasswordForm() { var viewModel = new ForgotPasswordViewModel(); return View(PathHelper.GetThemePartialViewPath("ForgotPasswordForm"), viewModel); }
public ActionResult ForgotPassword(ForgotPasswordViewModel model) { var changePasswordSucceeded = true; var currentUser = new Member(); var newPassword = AppHelpers.RandomString(8); try { if (ModelState.IsValid) { currentUser = ServiceFactory.MemberService.GetByEmail(model.EmailAddress); if (currentUser != null) { changePasswordSucceeded = ServiceFactory.MemberService.ResetPassword(currentUser, newPassword); } else { changePasswordSucceeded = false; } } } catch (Exception ex) { LogError(string.Format("Error resetting password for {0}", model.EmailAddress), ex); changePasswordSucceeded = false; } if (changePasswordSucceeded) { var sb = new StringBuilder(); sb.AppendFormat("<p>{0}</p>", string.Format(Lang("Members.ForgotPassword.Email"), Settings.ForumName)); sb.AppendFormat("<p><b>{0}</b></p>", newPassword); var email = new Email { EmailFrom = Settings.NotificationReplyEmailAddress, EmailTo = currentUser.Email, NameTo = currentUser.UserName, Subject = Lang("Members.ForgotPassword.Subject") }; email.Body = ServiceFactory.EmailService.EmailTemplate(email.NameTo, sb.ToString()); ServiceFactory.EmailService.SendMail(email); // We use temp data because we are doing a redirect ShowMessage(new GenericMessageViewModel { Message = Lang("Members.ForgotPassword.SuccessMessage"), MessageType = GenericMessages.Success }); return CurrentUmbracoPage(); } ModelState.AddModelError("", Lang("Members.ForgotPassword.ErrorMessage")); // Hack to show form validation ShowModelErrors(); return CurrentUmbracoPage(); }