public ActionResult ChangePassword(ChangePasswordModel PasswordModel, string command) { if (string.IsNullOrEmpty(command)) { if (ModelState.IsValid) { bool PasswordChangedSucceeded = false; try { if (PasswordModel.NewPassword == PasswordModel.ConfirmNewPassword && Regex.Match(PasswordModel.NewPassword, @"^.*(?=.{6,20})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$").Success) { var md5HashOld = CustomMembershipProvider.GetMd5Hash(PasswordModel.OldPassword); var md5HashNew = CustomMembershipProvider.GetMd5Hash(PasswordModel.NewPassword); MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */); PasswordChangedSucceeded = currentUser.ChangePassword(md5HashOld, md5HashNew); } else if (!Regex.Match(PasswordModel.NewPassword, @"^.*(?=.{6,20})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$").Success) { TempData["AlertMessage"] = "Password must be 6 to 20 alphanumeric characters including one uppercase letter, one lowercase letter and one special character."; return(View(PasswordModel)); } else { TempData["AlertMessage"] = "Confirm Password does not match with new Password."; return(View(PasswordModel)); } } catch (Exception) { PasswordChangedSucceeded = false; } if (PasswordChangedSucceeded) { FormsAuthentication.SignOut(); Session.Abandon(); return(RedirectToAction("Login", "Account", new { isChanged = "1" })); } else { ModelState.AddModelError("OldPassword", "The current password is incorrect."); } } //when something went wrong then return view with model return(View(PasswordModel)); } else { ModelState.Clear(); return(RedirectToAction("Index", "Home")); } }
public ActionResult Create(UsersModel model, string command, FormCollection fm) { var currentLoggedUserId = Convert.ToInt64(Membership.GetUser().ProviderUserKey); var CurrentUserRoleID = objContext.UserRoles.Where(x => x.UserID == currentLoggedUserId).FirstOrDefault().RoleID; if (CurrentUserRoleID > 2)//if not super admin and sub admin then redirect to home { return(RedirectToAction("Index", "Home")); } var EncryptUserID = EncryptDecrypt.Encrypt(model.UserID.ToString()); var rvd = new RouteValueDictionary(); rvd.Add("Column", Request.QueryString["Column"] != null ? Request.QueryString["Column"].ToString() : "UserCreateDate"); rvd.Add("Direction", Request.QueryString["Direction"] != null ? Request.QueryString["Direction"].ToString() : "Descending"); rvd.Add("pagesize", Request.QueryString["pagesize"] != null ? Request.QueryString["pagesize"].ToString() : Models.Common._pageSize.ToString()); rvd.Add("page", Request.QueryString["page"] != null ? Request.QueryString["page"].ToString() : Models.Common._currentPage.ToString()); ViewBag.Title = ViewBag.PageTitle = (model.UserID > 0 ? "Edit " : "Add ") + " User Details "; ViewBag.Submit = model.UserID > 0 ? "Update" : "Save"; ViewBag.CreateDate = DateTime.Now.ToShortDateString(); ViewBag.UserCreateDate = DateTime.Now.ToShortDateString(); #region System Change Log DataTable dtOld; var oldresult = (from a in objContext.Users where a.UserID == model.UserID select a).ToList(); dtOld = KISD.Areas.Admin.Models.Common.LINQResultToDataTable(oldresult); #endregion var objDBContent = new db_KISDEntities(); var objctUser = new User(); ViewBag.IsActiveInd = Models.Common.GetStatusListBoolean(model.Status.ToString()); ViewBag.UserID = model.UserID; ViewBag.isValid = "1"; ViewBag.RolesList = GetAllUserType(currentLoggedUserId); ViewBag.UserTypeID = model.UserRoleID; if (string.IsNullOrEmpty(command)) { if (model.UserID > 0) { objctUser = objDBContent.Users.Where(x => x.UserID == model.UserID).FirstOrDefault(); } model.DepartmentUsersList = GetDepartments(); var UserNameCount = objDBContent.Users.Where(x => x.UserNameTxt.ToLower().Trim() == model.UserNameTxt.ToLower().Trim() && x.UserID != model.UserID).Count(); if (UserNameCount > 0) { var selectedDepts = objContext.UserDepartments.Where(m => m.UserID == model.UserID).Select(m => m.DepartmentID).ToArray(); model.SelectedDepartment = Array.ConvertAll <long, string>(selectedDepts, delegate(long i) { return(i.ToString()); }); ModelState.AddModelError("UserNameTxt", "Username already exists."); ViewBag.isValid = "0"; return(View(model)); } objctUser.FirstNameTxt = model.FirstName; objctUser.LastNameTxt = model.LastName; objctUser.UserNameTxt = model.UserNameTxt; objctUser.EmailTxt = model.Email; // objctUser.PasswordTxt = !string.IsNullOrEmpty(model.Password)? CustomMembershipProvider.GetMd5Hash(model.Password): objctUser.PasswordTxt; objctUser.PasswordTxt = (!string.IsNullOrEmpty(model.ChangedPassword) ? CustomMembershipProvider.GetMd5Hash(model.ChangedPassword) : (!string.IsNullOrEmpty(model.Password) ? CustomMembershipProvider.GetMd5Hash(model.Password) : objctUser.PasswordTxt) ); objctUser.StatusInd = Convert.ToBoolean(fm["IsActiveInd"]); objctUser.IsDeletedInd = false; objctUser.CreateDate = DateTime.Now; objctUser.UserCreateDate = model.UserID > 0 ? objctUser.CreateDate : model.UserCreateDate; objctUser.CreateByID = model.UserID > 0 ? objctUser.CreateByID : Convert.ToInt64(Membership.GetUser().ProviderUserKey); objctUser.LastModifyByID = Convert.ToInt64(Membership.GetUser().ProviderUserKey); objctUser.LastModifyDate = DateTime.Now; if (model.UserID == 0) { objDBContent.Users.Add(objctUser); var UserID = model.UserID != 0 ? model.UserID : objctUser.UserID; var obj = new UserRole(); obj.UserID = Convert.ToInt32(UserID); obj.RoleID = Convert.ToInt16(model.UserRoleID); objDBContent.UserRoles.Add(obj); objDBContent.SaveChanges(); } else { var UserID = model.UserID != 0 ? model.UserID : objctUser.UserID; var obj = new UserRole(); obj = objDBContent.UserRoles.Where(x => x.UserID == model.UserID).FirstOrDefault(); obj.RoleID = Convert.ToInt16(model.UserRoleID); } try { objDBContent.SaveChanges(); var newUserID = objctUser.UserID; #region System Change Log SystemChangeLog objSCL = new SystemChangeLog(); long userid = Convert.ToInt64(Membership.GetUser().ProviderUserKey); User objuser = objContext.Users.Where(x => x.UserID == userid).FirstOrDefault(); objSCL.NameTxt = objuser.FirstNameTxt + " " + objuser.LastNameTxt; objSCL.UsernameTxt = objuser.UserNameTxt; objSCL.UserRoleID = (short)objContext.UserRoles.Where(x => x.UserID == objuser.UserID).First().RoleID; objSCL.ModuleTxt = "Users"; objSCL.LogTypeTxt = model.UserID > 0 ? "Update" : "Add"; objSCL.NotesTxt = "User Details" + (objctUser.UserID > 0 ? " updated for " : " added for ") + objctUser.FirstNameTxt + " " + objctUser.LastNameTxt; objSCL.LogDateTime = DateTime.Now; objContext.SystemChangeLogs.Add(objSCL); objContext.SaveChanges(); objSCL = objContext.SystemChangeLogs.OrderByDescending(x => x.ChangeLogID).FirstOrDefault(); var newResult = (from x in objContext.Users where x.UserID == newUserID select x); DataTable dtNew = Models.Common.LINQResultToDataTable(newResult); foreach (DataColumn col in dtNew.Columns) { if (dtOld.Rows.Count > 0) { if (dtOld.Rows[0][col.ColumnName].ToString() != dtNew.Rows[0][col.ColumnName].ToString()) { SystemChangeLogDetail objSCLD = new SystemChangeLogDetail(); objSCLD.ChangeLogID = objSCL.ChangeLogID; objSCLD.FieldNameTxt = col.ColumnName.ToString(); objSCLD.OldValueTxt = dtOld.Rows[0][col.ColumnName].ToString(); objSCLD.NewValueTxt = dtNew.Rows[0][col.ColumnName].ToString(); objContext.SystemChangeLogDetails.Add(objSCLD); objContext.SaveChanges(); } } } #endregion #region Save Department Users if (model.UserRoleID == 3) { var objUserDept = objContext.UserDepartments.Where(x => x.UserID == objctUser.UserID).ToList(); if (objUserDept.Count > 0) { foreach (var s in objUserDept) { objContext.UserDepartments.Remove(s); objContext.SaveChanges(); } } if (model.SelectedDepartment != null) { foreach (var list in model.SelectedDepartment) { UserDepartment objUserDepartment = new UserDepartment(); objUserDepartment.DepartmentID = Convert.ToInt64(list); objUserDepartment.UserID = model.UserID; objUserDepartment.CreateDate = DateTime.Now; objContext.UserDepartments.Add(objUserDepartment); objContext.SaveChanges(); } } } else { var objUserDept = objContext.UserDepartments.Where(x => x.UserID == objctUser.UserID).ToList(); if (objUserDept.Count > 0) { foreach (var s in objUserDept) { objContext.UserDepartments.Remove(s); objContext.SaveChanges(); } } var objUserPermissions = objContext.UserPermissions.Where(x => x.UserID == objctUser.UserID).ToList(); if (objUserPermissions != null && objUserPermissions.Count > 0) { foreach (var up in objUserPermissions) { objContext.UserPermissions.Remove(up); } objContext.SaveChanges(); } } #endregion TempData["AlertMessage"] = "User details " + ((objctUser.UserID == 0) ? "saved" : "updated") + " successfully."; } catch (Exception ex) { TempData["AlertMessage"] = "Some error occured. Please try after some time."; } } return(RedirectToAction("Index", "UsersManagement", rvd)); }