public virtual ActionResult ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var result = new ExecutionResults(); ProviderResolver <UserNotificationProvider> .Get.Provider.NotifyPasswordReset(model.UserName, result); if (this.IsJsonRequest()) { return(Json(new { success = result.Success, message = result.ToHtmlString() })); } if (result.Success) { return(RedirectToAction(MVC.Account.Login())); } for (var e = 0; e < result.Messages.Count; e++) { ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message); } return(View(model)); } if (this.IsJsonRequest()) { return(Json(new { success = false, errors = ModelState.ToJson() })); } return(View(model)); //modelstate already populated }
public virtual ActionResult ChangePassword(ChangePasswordViewModel model) { if (this.ModelState.IsValid) { var result = new ExecutionResults(); var user = new User() { UserID = SecurityContextManager.CurrentIdentity.Ticket.UserSession.UserID, Name = model.UserName, PasswordHash = model.ConfirmPassword }; if (UserManager.UpdateUser(user, model.OldPassword, Request.UserHostAddress, result)) { //success if (this.IsJsonRequest()) { return(Json(new { success = true })); } else { return(this.RedirectToAction(MVC.Account.ChangePasswordSuccess())); } } //failed business layer rules if (this.IsJsonRequest()) { return(Json(new { success = false, message = result.ToHtmlString() })); } else { for (int e = 0; e < result.Messages.Count; e++) { this.ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message); } return(this.View(model)); } } if (this.IsJsonRequest()) { return(Json(new { success = false, errors = this.ModelState.ToJson() })); } else { return(this.View(model)); //modelstate already populated } }
public virtual ActionResult CheckAliasIsAvailable(string alias) { if (alias == SecurityContextManager.CurrentIdentity.Name) { return(Json(new { success = true, message = "This is your current sign in alias." })); } var result = new ExecutionResults(); if (!UserManager.ValidateName(alias, result)) { return(Json(new { success = false, message = result.ToHtmlString() })); } var user = UserManager.GetUserByName(alias); return(Json(new { success = (user == null), message = (User == null) ? "This name is available" : "This name is not available. Choose another name." })); }
public virtual ActionResult ForgotPassword(ForgotPasswordViewModel model) { if (this.ModelState.IsValid) { var result = new ExecutionResults(); var resetCode = UserManager.GenerateUserResetCode(model.UserName); if (!String.IsNullOrWhiteSpace(resetCode)) //user found { //TODO: generate email body with reset code. } else { //TODO: generate alternate body telling how to sign up. } #warning TODO: send the reset code via email (or signup instructions if account does not exist) and then show a view with email confirmation. //TODO: send the email (whether user found or not!) //TODO: return an ActionResult if successful result.AppendError("The forgot password functionality is not yet implemented."); //failed business layer rules if (this.IsJsonRequest()) { return(Json(new { success = false, message = result.ToHtmlString() })); } else { for (int e = 0; e < result.Messages.Count; e++) { this.ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message); } return(this.View(model)); } } if (this.IsJsonRequest()) { return(Json(new { success = false, errors = this.ModelState.ToJson() })); } else { return(this.View(model)); //modelstate already populated } }