Пример #1
0
 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);// 信息提示
         }
     }
 }
Пример #2
0
        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);
            }
        }
Пример #3
0
        /// <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());
        }
Пример #4
0
        /// <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>");
        }
Пример #5
0
        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"]));
        }
Пример #6
0
        //加载角色信息
        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);
            }
        }
Пример #7
0
        /// <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");
        }