public async Task <ActionResult> UpdateUserPasswordAsync(UserSecurityViewModel userSecurityViewModel) { if (!ModelState.IsValid) { return(PartialView("_ChangeUserPassword", userSecurityViewModel)); } var userId = userSecurityViewModel.userId; if (await UserManager.CheckPasswordAsync(UserManager.FindById(userId), userSecurityViewModel.oldPass)) { if (userSecurityViewModel.newPass == userSecurityViewModel.confirmnewPass) { UserManager.RemovePassword(userId); UserManager.AddPassword(userId, userSecurityViewModel.newPass); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, errmsg = "invalid password confirmation" }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, errmsg = "Current password invalid" }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ChangeUserPassword(string _userId) { var userSecurity = new UserSecurityViewModel { userId = _userId }; return(PartialView("_ChangeUserPassword", userSecurity)); }
public IActionResult Security() { var userId = _userManager.GetUserId(User); UserSecurityViewModel model = new UserSecurityViewModel(); var profile = _repositoryManager.UserProfile.GetUserProfile(userId); if (profile.PasswordChangeDate != null) { model.RelativeDateChange = RelativeDateTime((DateTime)profile.PasswordChangeDate); } return(View(model)); }
public async Task <IActionResult> Security(UserSecurityViewModel model) { if (ModelState.IsValid) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(RedirectToAction("Login", "Account")); } var result = await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword); if (result.Succeeded) { UserProfile userProfile = _repositoryManager.UserProfile.GetUserProfile(user.Id); userProfile.PasswordChangeDate = model.DateChanged; _repositoryManager.UserProfile.UpdateUserProfile(userProfile); await _repositoryManager.saveAsync(); await _signInManager.RefreshSignInAsync(user); var text = "Your Password was successfully updated"; SendNotificationToUser(text, user.Id); await _repositoryManager.saveAsync(); TempData["SuccessMessage"] = "Password Updated Successfully"; return(RedirectToAction(nameof(Security))); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } return(View(model)); }