コード例 #1
0
        /// <summary>
        /// 获取某个角色的权限 数据不要乱改啊!!
        /// </summary>
        /// <param name="Id">角色的Id</param>
        /// <returns></returns>
        public string GetManeOP(string Id)
        {
            rms_role Rmodel  = RMS_RoleService.Instance.SingleM(Id);//当前角色
            string   menus   = " [\n";
            var      sqlManu = " 1=1 ";

            sqlManu += " and companyid=" + UserData.companyid + " "; //只显示 自己公司的
            sqlManu += " and projectid=" + Rmodel.projectid + " ";   //只显示同一个项目
            if (!IsSysRole)                                          //不是系统管理员的角色,只能返回自己的菜单
            {
                sqlManu += " and id in( select manuid from rms_rolemanus where roleid='" + UserData.RoleId + "')";
            }

            List <rms_menus>     list = RMS_MenusService.Instance.FetchW(sqlManu);                                           //菜单集
            List <rms_buttons>   listControlButtons = RMS_ButtonsService.Instance.FetchW(" 1=1 ");                           //所有的按钮
            List <rms_rolemanus> listRoleColumns    = RMS_RoleManusService.Instance.FetchW(" roleid='" + Id + "'");          //这个角色已经添加的菜单

            List <v_rolemanubuttons> listRoleMenuButtons = V_RoleManuButtonsService.Instance.FetchW(" roleid='" + Id + "'"); //这个角色已经添加的角色按钮

            for (int i = 0; i < list.Count; i++)
            {
                if (list.Find(p => p.id == list[i].parentmanuid) == null)//此项没有父级
                {
                    menus += "{  \"MenuId\":\"" + list[i].id + "\",";
                    menus += string.Format("  \"Name\":\"{0}\",", list[i].manuname);
                    menus += string.Format("  \"iconCls\":\"{0}\",", list[i].icon);
                    string        ControlId_Browse = "0";
                    rms_rolemanus rcItem           = listRoleColumns.Find(p => p.manuid.Equals(list[i].id));

                    if (rcItem != null)
                    {
                        ControlId_Browse = "1";//如果存在
                    }
                    menus += string.Format("  \"ControlId_Browse\":\"{0}\",", ControlId_Browse);
                    foreach (rms_buttons dd in listControlButtons)//添加列的数据
                    {
                        string            Ishave  = "0";
                        v_rolemanubuttons rmbItem = listRoleMenuButtons.Find(p => p.id.Equals(dd.id) && p.manuid.Equals(list[i].id));

                        if (rmbItem != null)
                        {
                            Ishave = "1";//如果角色有此按钮存在
                        }
                        menus += string.Format("\"ControlId_{0}\":\"{1}\",", dd.id, Ishave);
                    }
                    menus += GetSonTreeManu(list, list[i], listControlButtons, listRoleColumns, listRoleMenuButtons);//添加children
                    menus += "},";
                }
            }
            menus = menus.Substring(0, menus.Length - 1);
            menus = menus + "]";

            return(menus);
        }
コード例 #2
0
        private string GetSonTreeManu(List <rms_menus> listAll, rms_menus SonItem, List <rms_buttons> listControlButtons, List <rms_rolemanus> listRoleColumns, List <v_rolemanubuttons> listRoleMenuButtons)
        {
            string           menus = "\"children\":[";
            List <rms_menus> list  = listAll.FindAll(p => p.parentmanuid.Equals(SonItem.id));

            if (list != null && list.Count > 0)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    menus += "{  \"MenuId\":\"" + list[i].id + "\",";
                    menus += string.Format("  \"Name\":\"{0}\",", list[i].manuname);
                    menus += string.Format("  \"iconCls\":\"{0}\",", list[i].icon);
                    string        ControlId_Browse = "0";
                    rms_rolemanus rcItem           = listRoleColumns.Find(p => p.manuid.Equals(list[i].id));

                    if (rcItem != null)
                    {
                        ControlId_Browse = "1";//如果存在
                    }
                    menus += string.Format("  \"ControlId_Browse\":\"{0}\",", ControlId_Browse);
                    foreach (rms_buttons dd in listControlButtons)//添加列的数据
                    {
                        string Ishave = "0";

                        v_rolemanubuttons rmbItem = listRoleMenuButtons.Find(p => p.id.Equals(dd.id) && p.manuid.Equals(list[i].id));

                        if (rmbItem != null)
                        {
                            Ishave = "1";//如果角色有此按钮存在
                        }

                        menus += string.Format("\"ControlId_{0}\":\"{1}\",", dd.id, Ishave);
                    }
                    menus += GetSonTreeManu(listAll, list[i], listControlButtons, listRoleColumns, listRoleMenuButtons);//添加children
                    menus += "},";
                }
                menus = menus.Substring(0, menus.Length - 1);
            }
            menus = menus + "]";
            return(menus);
        }