protected void roleInfo_ItemCommand(object source, RepeaterCommandEventArgs e) { //编辑 if (e.CommandName == "Edit") { int id = Convert.ToInt32(e.CommandArgument.ToString()); Response.Redirect("../Permission/RolePermission.aspx?id=" + id); } //删除 if (e.CommandName == "Delete") { string id = e.CommandArgument.ToString(); try { int del = RoleInfoManager.deleteRoleInfo(Convert.ToInt32(id)); if (del > 0) { ScriptManager.RegisterStartupScript(this, GetType(), "key", "alert('删除成功!')", true);// 信息提示 LoginLimitManager.DeleteRoleMenu(id); bindData(); } else { ScriptManager.RegisterStartupScript(this, GetType(), "key", "alert('删除失败!请联系管理员!')", true);// 信息提示 } } catch (Exception) { ScriptManager.RegisterStartupScript(this, GetType(), "key", "alert('角色当前在使用,不能删除。')", true);// 信息提示 } } }
protected void DisplayRoleRightMenu() { //得到父节点Id int nodeid = int.Parse(hidParentMenu.Value); //得到当前角色Id int roleId = int.Parse(hidRoleId.Value); ArrayList arrRoleChildMenu = new ArrayList(); //根据角色Id和父节点Id得到RoleRight表中已经存在的子菜单信息\ IList <EtNet_Models.LoginLimit> RoleChildLimit = LoginLimitManager.GetRoleLimitByRoleIdAndParentNodeId(roleId, nodeid); foreach (EtNet_Models.LoginLimit loginLimit in RoleChildLimit) { arrRoleChildMenu.Add(loginLimit.Nodeid.ToString()); } //根据父节点Id得到对应的所有子节点信息 IList <EtNet_Models.Menu> menus = MenuManager.getMenuByParentId(nodeid); //将子节点循环追加到CheckBoxList控件中 foreach (EtNet_Models.Menu menu in menus) { ListItem list = new ListItem(); list.Value = menu.Nodeid.ToString(); list.Text = menu.Name.ToString(); if (arrRoleChildMenu.Contains(list.Value)) { list.Selected = true; } chklstChildMenu.Items.Add(list); } }
/// <summary> /// 加载菜单树 /// </summary> /// <param name="loginId"></param> private void InitMenuTree(int loginId) { List <string> treenodes = new List <string>(); IList <EtNet_Models.Menu> menus = MenuManager.getMenuAll(); StringBuilder sbMenu = new StringBuilder(); string[] menuArr = null; IList <LoginLimit> roleList = LoginLimitManager.getAllNodeByRoleId(loginId); if (roleList.Count > 0) { foreach (LoginLimit role in roleList) { sbMenu.Append(role.Nodeid); sbMenu.Append(","); } menuArr = sbMenu.ToString().TrimEnd(',').Split(','); } foreach (EtNet_Models.Menu menu in menus) { string node = string.Format("{{ 'id':'{0}', 'pId':'{1}', 'name':'{2}', 'open':'false','checked':'{3}'}}", menu.Nodeid, menu.Parentnodeid, menu.Name, menuArr == null ? false : (menuArr.Contains(menu.Nodeid.ToString()))); treenodes.Add(node); } NodesData = string.Join(",", treenodes.ToArray()); }
/// <summary> /// 角色权限 /// </summary> private void SaveRoleLimit() { //获取ID int roleid = int.Parse(Request.QueryString["id"].ToString()); IList <LoginLimit> currentLoginLimit = LoginLimitManager.getAllNodeByRoleId(roleid); ArrayList arrRoleNodes = new ArrayList(); foreach (LoginLimit loginLimit in currentLoginLimit) { arrRoleNodes.Add(loginLimit.Nodeid.ToString()); } foreach (Control ct in this.phRoleDistribute.Controls) { CheckBox chk = (CheckBox)ct.FindControl("chkParentMenu"); HtmlInputHidden hih = (HtmlInputHidden)ct.FindControl("hidParentMenu"); if (chk.Checked) { if (!arrRoleNodes.Contains(hih.Value)) { LoginLimitManager.InsertLoginLimt(roleid.ToString(), hih.Value); } } else { if (arrRoleNodes.Contains(hih.Value)) { LoginLimitManager.DeleteLoginLimit(roleid.ToString(), hih.Value); } } CheckBoxList chklist = (CheckBoxList)ct.FindControl("chklstChildMenu"); foreach (ListItem listItem in chklist.Items) { if (listItem.Selected) { if (!arrRoleNodes.Contains(listItem.Value)) { LoginLimitManager.InsertLoginLimt(roleid.ToString(), listItem.Value); } } else { if (arrRoleNodes.Contains(listItem.Value)) { LoginLimitManager.DeleteLoginLimit(roleid.ToString(), listItem.Value); } } } } Response.Write("<script>alert('权限下次登录时生效!!');self.document.location.href='RoleSet.aspx'</script>"); }
private void SetDefault() { List <string> treenodes = new List <string>(); LoginInfo login = Session["login"] as LoginInfo; int id = Convert.ToInt32(Request.QueryString["id"]); if (int.Parse(DdlRoleList.SelectedValue) == 0) { InitDataTree(id); InitMenuTree(id); return; } IList <EtNet_Models.Menu> menus = MenuManager.getMenuAll(); StringBuilder sbMenu = new StringBuilder(); string[] menuArr = null; int roleId = int.Parse(DdlRoleList.SelectedValue); IList <LoginLimit> loginList = LoginLimitManager.getAllNodeByRoleId(roleId); if (loginList.Count > 0) { foreach (LoginLimit lul in loginList) { sbMenu.Append(lul.Nodeid); sbMenu.Append(","); } menuArr = sbMenu.ToString().TrimEnd(',').Split(','); } foreach (EtNet_Models.Menu menu in menus) { string node = string.Format("{{ 'id':'{0}', 'pId':'{1}', 'name':'{2}', 'open':'false','checked':'{3}'}}", menu.Nodeid, menu.Parentnodeid, menu.Name, menuArr == null ? false : (menuArr.Contains(menu.Nodeid.ToString()))); treenodes.Add(node); } NodesMenu = string.Join(",", treenodes.ToArray()); InitDataTree(Convert.ToInt32(Request.QueryString["id"])); }
//加载角色信息 protected void DisplayRoleRightInfo(int roleId) { IList <LoginLimit> currentRoleParentNodes = LoginLimitManager.GetParentNodesByRoleId(roleId); ArrayList arrRoleParentNodes = new ArrayList(); foreach (LoginLimit loginLimit in currentRoleParentNodes) { arrRoleParentNodes.Add(loginLimit.Nodeid.ToString()); } //得到所有父级节点信息 IList <EtNet_Models.Menu> menus = EtNet_BLL.MenuManager.getAllParentNode(); //根据父节点得到对应子节点,把父子节点生成用户控件,然后循环插入到PlaceHolder容器中 foreach (EtNet_Models.Menu menu in menus) { //父节点ID string nodeid = menu.Nodeid.ToString(); //父节点名称 string nodename = menu.Name.ToString(); //实例化用户控件 RoleLimit rolelimit = (RoleLimit)LoadControl(@"RoleLimit.ascx"); //实例化隐藏域用于存储父节点ID HtmlInputHidden hidParentNode = (HtmlInputHidden)rolelimit.FindControl("hidParentMenu"); hidParentNode.Value = nodeid; //实例化隐藏域用于存储角色ID HtmlInputHidden hidRole = (HtmlInputHidden)rolelimit.FindControl("hidRoleId"); hidRole.Value = roleId.ToString(); //实例化空间CheckBox CheckBox chkParentMenu = (CheckBox)rolelimit.FindControl("chkParentMenu"); //显示父节点名称 chkParentMenu.Text = nodename; if (arrRoleParentNodes.Contains(nodeid)) { chkParentMenu.Checked = true; } //添加到用户控件 phRoleDistribute.Controls.Add(rolelimit); } }
/// <summary> /// 保存角色权限 /// </summary> private void SaveRolePremission() { List <MyTreeNode> menuList = HidMenu.Value == string.Empty ? null : ReadNode(HidMenu.Value); List <MyTreeNode> noMenuList = HidNoMenu.Value == string.Empty ? null : ReadNode(HidNoMenu.Value); int roleId = Convert.ToInt32(Request.QueryString["id"]); IList <LoginLimit> roleList = LoginLimitManager.getAllNodeByRoleId(roleId); ArrayList arrNodes = new ArrayList(); foreach (LoginLimit roleLimit in roleList) { arrNodes.Add(roleLimit.Nodeid.ToString()); } foreach (MyTreeNode mtn in menuList) { if (!arrNodes.Contains(mtn.Id.ToString())) { LoginLimitManager.InsertLoginLimt(roleId.ToString(), mtn.Id.ToString()); } } foreach (MyTreeNode mtn in noMenuList) { if (arrNodes.Contains(mtn.Id.ToString())) { LoginLimitManager.DeleteLoginLimit(roleId.ToString(), mtn.Id.ToString()); } } SetPersmissionByRole(menuList); Response.Redirect("../SysSet/RoleSet.aspx"); }