public ActionResult NewPass(Guid id) { if (LoginUser.Id == id) { return(RedirectToAction("ChangePass")); } var user = MembershipService.Get(id, true); if (user == null) { return(RedirectToAction("index")); } if (user.UserName == AppConstants.AdminUsername || (LoginUser.UserName != AppConstants.AdminUsername && MembershipService.UserInRole(user, AppConstants.AdminRoleName))) { TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel { Message = "Bạn không đủ quyền hạn để thực hiện thao tác này!", MessageType = GenericMessages.warning }; return(RedirectToAction("index")); } var viewModel = new AdminNewPassViewModel { Id = id, UserName = user.UserName, }; return(View(viewModel)); }
public ActionResult NewPass(AdminNewPassViewModel viewModel) { if (ModelState.IsValid) { if (LoginUser.Id == viewModel.Id) { return(RedirectToAction("ChangePass")); } var user = MembershipService.Get(viewModel.Id, true); if (user == null) { return(RedirectToAction("index")); } if (user.UserName == AppConstants.AdminUsername || (LoginUser.UserName != AppConstants.AdminUsername && MembershipService.UserInRole(user, AppConstants.AdminRoleName))) { TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel { Message = "Bạn không đủ quyền hạn để thực hiện thao tác này!", MessageType = GenericMessages.warning }; return(RedirectToAction("index")); } // Check password is match if (viewModel.NewPassword != viewModel.NewPassword2) { ModelState.AddModelError("NewPassword2", "Nhập lại mật khẩu mới không khớp"); return(View(viewModel)); } using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork()) { try { var salt = user.PasswordSalt; var newhash = StringUtils.GenerateSaltedHash(viewModel.NewPassword, salt); user.Password = newhash; user.LastPasswordChangedDate = DateTime.UtcNow; MembershipService.Update(user); unitOfWork.Commit(); // We use temp data because we are doing a redirect TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel { Message = "Đổi mật khẩu thành công!", MessageType = GenericMessages.success }; } catch (Exception ex) { unitOfWork.Rollback(); LoggingService.Error(ex.Message); ModelState.AddModelError("", "Có lỗi xảy ra khi đổi mật khẩu!"); } } } return(View(viewModel)); }