private void NewAccount() { var account = AccountInstance.GetObject(); BuildAccountInfo(account); // check the same login code var chk = AccountInstance.Find(f => f.Code.Equals(account.Code)); if (null != chk) { ShowNotification("./account_add.aspx", "The login code \"" + account.Code + "\" is exist.", false); } else { AccountInstance.Add(account); // 保存历史记录 SaveHistory(new TB_AccountHistory() { ActionId = ActionInstance.Find(f => f.Name.Equals("AddAccount")).id, ObjectA = "[id=" + account.id + "] " + account.Name + ", " + account.Code }); ShowNotification("./account_add.aspx", "You add a new account: " + account.Name + "(" + account.Code + ")."); } }
protected void btDelete_Click(object sender, EventArgs e) { if (!HasSessionLose) { if ("" != hidID.Value) { var ids = GetIdList(hidID.Value.Split(new char[] { ',' })); var list = RoleInstance.FindList(f => ids.Contains(f.id) && f.Delete == false); foreach (var role in list) { role.Delete = true; Update(role); SaveHistory(new TB_AccountHistory { ActionId = ActionInstance.Find(f => f.Name.Equals("DeleteRole")).id, ObjectA = "[id=" + role.id + "] " + role.Name }); } // 更新默认角色 var dftRole = RoleInstance.Find(f => f.IsDefault == true && f.Delete == false); foreach (var role in ids) { AccountInstance.ClearRoleInfo(role, null == dftRole ? 0 : dftRole.id); } ShowNotification("./role_list.aspx", "Success: You have delete " + ids.Count() + " role(s)."); } } }
/// <summary> /// 根据编辑的菜单项更新角色的访问 /// </summary> /// <param name="obj"></param> private void UpdateRole(TB_Permission obj) { // 更新默认角色可以访问的 if (obj.IsDefault == true) { var dftPermission = PermissionInstance.GetDefaultMenus(); // 查找非管理角色 var roles = RoleInstance.FindList(f => f.IsAdministrator == false && f.Delete == false); foreach (var role in roles) { var pers = role.Permission.Split(new char[] { ',' }); if (!pers.Contains(obj.id.ToString())) { RoleInstance.Update(f => f.id == role.id, act => act.Permission = dftPermission); } } } // 查找更新管理员角色的访问权限 RoleInstance.Update(f => f.IsAdministrator == true && f.Delete == false, act => act.Permission = PermissionInstance.GetAdministratorsMenus()); // 重置当前登陆者的session Account = AccountInstance.Find(f => f.id == Account.id); Session[Utility.SessionName] = Account; }
private void ShowDepartments() { List <int> depts; if ("" == hidDepartment.Value) { depts = DepartmentInstance.GetAllDepartments(); } else { depts = DepartmentInstance.GetSubdepartments(ParseInt(hidDepartment.Value)); } var totalRecords = 0; var pageIndex = "" == hidPageIndex.Value ? 1 : int.Parse(hidPageIndex.Value); var list = DepartmentInstance.FindPageList <TB_Department>(pageIndex, PageSize, out totalRecords, f => f.Delete == false && (f.Name.IndexOf(txtName.Value.Trim()) >= 0) && depts.Contains(f.id), "Parent,Name"); var totalPages = totalRecords / PageSize + (totalRecords % PageSize > 0 ? 1 : 0); string html = ""; if (totalRecords < 1) { html = "<tr><td colspan=\"10\">No records, You can change the condition and try again or " + " <a href=\"./department_add.aspx\">ADD</a> new one.</td></tr>"; } else { var cnt = (pageIndex - 1) * PageSize; foreach (var obj in list) { cnt++; var users = AccountInstance.FindList(f => f.Department == obj.id).Count(); var upper = 0 == obj.Parent ? null : DepartmentInstance.Find(f => f.id == obj.Parent); var id = Utility.UrlEncode(Utility.Encrypt(obj.id.ToString())); html += "<tr>" + "<td style=\"width: 40px; text-align: center;\"><input type=\"checkbox\" id=\"cb_" + id + "\" /></td>" + "<td style=\"width: 40px; text-align: center;\">" + cnt + "</td>" + "<td><a href=\"./department_add.aspx?key=" + id + "\" >" + obj.Name + "</a></td>" + "<td>" + obj.Phone + "</td>" + "<td>" + obj.Fax + "</td>" + "<td>" + (obj.IsDefault == true ? "Yes" : "-") + "</td>" + "<td><a href=\"#d" + (null == upper ? "" : upper.id.ToString()) + "\" >" + (null == upper ? "" : upper.Name) + "</a></td>" + "<td>" + (0 == users ? "0" : ("<a href=\"./account_list.aspx?key=" + Utility.UrlEncode(Utility.Encrypt("d," + obj.id.ToString())) + "\" >" + users + "</a>")) + "</td>" + "<td>" + obj.Room + "</td>" + "<td>" + obj.Address + "</td>" + "</tr>"; } } tbodyBody.InnerHtml = html; divPagging.InnerHtml = ""; if (totalRecords > 0) { ShowPaggings(pageIndex, totalPages, totalRecords, "./department_list.aspx", divPagging); } }
/// <summary> /// 显示指定部门的所有用户列表 /// </summary> /// <param name="node"></param> /// <param name="parent"></param> protected void ShowDepartmentUsersInTreeView(TreeNode node, int parent) { var users = AccountInstance.FindList(f => f.Department == parent).OrderBy(o => o.Name); foreach (var user in users) { node.ChildNodes.Add(new TreeNode { Text = user.Name, ShowCheckBox = true, SelectAction = TreeNodeSelectAction.Expand, NavigateUrl = "#" + user.id }); } }
private void ShowRoles() { var totalRecords = 0; var pageIndex = "" == hidPageIndex.Value ? 1 : int.Parse(hidPageIndex.Value); var list = RoleInstance.FindPageList <TB_Role>(pageIndex, PageSize, out totalRecords, p => p.Delete == false && p.Name.IndexOf(txtName.Value.Trim()) >= 0, "Name"); var totalPages = totalRecords / PageSize + (totalRecords % PageSize > 0 ? 1 : 0); //list = list.OrderBy(o => o.IsAdministrator).ThenBy(t => t.IsDefault).ThenBy(t => t.AddTime); string html = ""; if (totalRecords < 1) { html = "<tr><td colspan=\"8\">No records, you can change condition and try again, or " + " <a href=\"./role_add.aspx\">Add</a> some new role.</td></tr>"; } else { var cnt = (pageIndex - 1) * PageSize; foreach (var obj in list) { cnt++; var users = AccountInstance.FindList(f => f.Role == obj.id).Count(); var id = Utility.UrlEncode(Utility.Encrypt(obj.id.ToString())); html += "<tr>" + // 系统默认角色无法删除 "<td style=\"width: 40px; text-align: center;\">" + (obj.IsDefault.Value ? "" : ("<input type=\"checkbox\" id=\"cb_" + id + "\" />")) + "</td>" + "<td style=\"width: 40px; text-align: center;\">" + cnt + "</td>" + "<td><a href=\"./role_add.aspx?key=" + id + "\" title=\"click to edit\">" + ("" == obj.Name ? "-" : obj.Name) + "</a></td>" + "<td>" + (obj.IsDefault.Value ? "Yes" : "-") + "</td>" + "<td>" + (obj.IsAdministrator.Value ? "Yes" : "-") + "</td>" + "<td>" + (users > 0 ? ("<a href=\"./account_list.aspx?key=" + Utility.UrlEncode(Utility.Encrypt("r," + obj.id.ToString())) + "\" >" + users.ToString() + "</a>") : users.ToString()) + "</td>" + "<td><a href=\"./role_authority.aspx?key=" + id + "\">Edit</a></td>" + "<td>" + obj.Description + "</td>" + "</tr>"; } } tbodyBody.InnerHtml = html; divPagging.InnerHtml = ""; if (totalRecords > 0) { ShowPaggings(pageIndex, totalPages, totalRecords, "./role_list.aspx", divPagging); } }
protected void bt_Delete_Click(object sender, EventArgs e) { if (!HasSessionLose) { if ("" != hidID.Value) { var subIds = new List <int>(); var ids = GetIdList(hidID.Value.Split(new char[] { ',' })); subIds.AddRange(ids); var list = DepartmentInstance.FindList(f => ids.Contains(f.id)); foreach (var dept in list) { // 先删除所有下属部门 var subs = DepartmentInstance.GetSubdepartments(dept.id); subIds.AddRange(subs); var subList = DepartmentInstance.FindList(f => subs.Contains(f.id) && f.Delete == false); foreach (var sub in subList) { //subIds.Add(sub.id); sub.Delete = true; Update(sub); } // 更新删除状态 dept.Delete = true; Update(dept); // 保存删除历史记录 SaveHistory(new TB_AccountHistory { ActionId = ActionInstance.Find(f => f.Name.Equals("DeleteDept")).id, ObjectA = "[id=" + dept.id + "] " + dept.Name }); } // 删除动作完成之后才处理用户的默认部门信息 TB_Department dftDept = DepartmentInstance.GetDefaultDepartment(); // 清理所有下级部门的用户列表 foreach (var id in subIds) { AccountInstance.ClearDeptInfo(id, null == dftDept ? 0 : dftDept.id); } ShowNotification("./department_list.aspx", "Success: You have delete " + ids.Count() + " department(s)."); } } }
private void EditAccount() { var account = AccountInstance.Find(f => f.id == ParseInt(Utility.Decrypt(hidID.Value))); if (null != account) { BuildAccountInfo(account); Update(account); // 保存历史记录 SaveHistory(new TB_AccountHistory { ActionId = ActionInstance.Find(f => f.Name.Equals("EditAccount")).id, ObjectA = "[id=" + account.id + "] " + account.Name + ", " + account.Code }); ShowNotification("./account_list.aspx", "You changed account: " + account.Name + "(" + account.Code + ")."); } }
/// <summary> /// 更新用户信息 /// </summary> /// <param name="obj"></param> protected void Update(TB_Account obj) { AccountInstance.Update(f => f.id == obj.id, action => { action.Delete = obj.Delete; action.Answer = obj.Answer; action.Code = obj.Code; action.Department = obj.Department; action.Email = obj.Email; action.LandlineNumber = obj.LandlineNumber; action.LastLoginIp = obj.LastLoginIp; action.LastLoginTime = obj.LastLoginTime; action.Locked = obj.Locked; action.LoginTimes = obj.LoginTimes; action.Name = obj.Name; action.Password = obj.Password; action.Phone = obj.Phone; action.Question = obj.Question; action.RegisterTime = obj.RegisterTime; action.Role = obj.Role; }); }
private void showEdit() { var account = AccountInstance.Find(f => f.id == ParseInt(Utility.Decrypt(_key))); if (null != account) { txtCode.Value = account.Code; txtDepartment.Value = (int?)null == account.Department ? "" : account.TB_Department.Name; txtEmail.Value = account.Email; txtLindline.Value = account.LandlineNumber; txtName.Value = account.Name; txtPhone.Value = account.Phone; txtQuestion.Value = account.Question; txtAnswer.Disabled = !string.IsNullOrEmpty(account.Question); txtRole.Value = (int?)null == account.Role ? "" : account.TB_Role.Name; hidDepartment.Value = (int?)null == account.Department ? "" : account.Department.ToString(); hidRole.Value = (int?)null == account.Role ? "" : account.Role.ToString(); } else { ShowNotification("./account_list.aspx", "Error: paramenter error, cannot edit the account.", false); } }
protected void btSave_Click(object sender, EventArgs e) { var Old = Utility.MD5(txtOldPassword.Value.Trim()); var New = Utility.MD5(txtNewPassword.Value.Trim()); if (Old.Equals(Account.Password.ToUpper())) { Account.Password = New; AccountInstance.Update(f => f.id == Account.id, a => { a.Password = Account.Password; }); // 保存历史记录 SaveHistory(new TB_AccountHistory { ActionId = ActionInstance.Find(f => f.Name.Equals("ChangePassword")).id, Ip = Utility.GetClientIP(this.Context) }); ShowNotification("./change_password.aspx", "Your have changed your password, it's take effective when you next login."); } else { ShowNotification("./change_password.aspx", "Your old password is incorrect, please try again.", false); } }
protected void btDelete_Click(object sender, EventArgs e) { if (!HasSessionLose) { if ("" != hidID.Value) { var ids = GetIdList(hidID.Value.Split(new char[] { ',' })); var list = AccountInstance.FindList(f => ids.Contains(f.id) && f.Delete == false); foreach (var account in list) { account.Delete = true; Update(account); SaveHistory(new TB_AccountHistory { ActionId = ActionInstance.Find(f => f.Name.Equals("DeleteAccount")).id, ObjectA = "[id=" + account.id + "] " + account.Name }); } ShowNotification("./account_list.aspx", "Success: You have delete " + ids.Count() + " account(s)."); } } }
private void ShowAccountList() { // 部门id列表 var depts = "" != hidDepartment.Value ? (DepartmentInstance.GetSubdepartments(ParseInt(hidDepartment.Value))) : (DepartmentInstance.GetAllDepartments()); // 角色列表 List <int> roles; if ("" != hidRole.Value) { roles = new List <int>(); roles.Add(ParseInt(hidRole.Value)); } else { roles = RoleInstance.GetAllRole(); } var totalRecords = 0; var pageIndex = "" == hidPageIndex.Value ? 1 : int.Parse(hidPageIndex.Value); var list = AccountInstance.FindPageList <TB_Account>(pageIndex, PageSize, out totalRecords, f => (f.Name.IndexOf(txtName.Value.Trim()) >= 0) && (roles.Contains(f.Role.Value) || f.Role == (int?)null) && (depts.Contains(f.Department.Value) || f.Department == (int?)null) && f.Delete == false, "Name"); var totalPages = totalRecords / PageSize + (totalRecords % PageSize > 0 ? 1 : 0); string html = ""; if (totalRecords < 1) { html = "<tr><td colspan=\"12\">No records, You can change the condition and try again or " + " <a href=\"./account_add.aspx\">ADD</a> new one.</td></tr>"; } else { var cnt = (pageIndex - 1) * PageSize; foreach (var obj in list) { cnt++; var id = Utility.UrlEncode(Utility.Encrypt(obj.id.ToString())); html += "<tr " + (obj.Locked == true ? "style=\"color: red;\"" : "") + ">" + "<td style=\"width: 40px; text-align: center;\"><input type=\"checkbox\" id=\"cb_" + id + "\" /></td>" + "<td style=\"width: 40px; text-align: center;\">" + cnt + "</td>" + "<td style=\"width: 60px;\"><a href=\"./account_add.aspx?key=" + id + "\" >" + obj.Name + "</a></td>" + "<td style=\"width: 60px;\">" + obj.Code + "</td>" + "<td style=\"width: 80px;\">" + obj.RegisterTime.Value.ToString("yyyy-MM-dd") + "</td>" + "<td style=\"width: 50px;\">" + (obj.Locked == true ? "Locked" : "Normal") + "</td>" + "<td>" + ("<a href=\"#d" + (null == obj.Department ? "" : obj.Department.ToString()) + "\" >" + (null == obj.Department ? "-" : obj.TB_Department.Name) + "</a>") + "</td>" + "<td>" + ("<a href=\"#r" + (null == obj.Role ? "" : obj.Role.ToString()) + "\" >" + (null == obj.Role ? "-" : obj.TB_Role.Name) + "</a>") + "</td>" + "<td>" + obj.LoginTimes.ToString() + "</td>" + "<td>" + (null == obj.LastLoginTime ? "never" : obj.LastLoginTime.Value.ToString("yyyy-MM-dd HH:mm:ss")) + "</td>" + "<td>" + obj.LastLoginIp + "</td>" + "<td></td>" + "</tr>"; } } tbodyBody.InnerHtml = html; divPagging.InnerHtml = ""; if (totalRecords > 0) { ShowPaggings(pageIndex, totalPages, totalRecords, "./account_list.aspx", divPagging); } }