public string SaveRoleOP(string RoleManus, string RoleManuButtons, string RoleId)
        {
            Guid          roleid = Guid.Parse(RoleId);
            List <string> manu   = RoleManus.Split('_').ToList();
            int           res    = 0;
            var           mql2   = RMS_RoleManusSet.RoleId.Equal(roleid);
            int           f      = RMBiz.Remove <RMS_RoleManusSet>(mql2);

            for (int i = 0; i < manu.Count; i++)
            {
                if (!string.IsNullOrEmpty(manu[i]))
                {
                    RMS_RoleManus item = new RMS_RoleManus();
                    item.Id     = Guid.NewGuid();
                    item.RoleId = roleid;
                    item.ManuId = Guid.Parse(manu[i]);
                    RMBiz.Add(item);
                    res++;
                }
            }


            List <string> ManuButtons = RoleManuButtons.Split('_').ToList();
            var           mql         = RMS_RoleManuButtonsSet.RoleId.Equal(roleid);
            int           ff          = RMBBiz.Remove <RMS_RoleManuButtonsSet>(mql);

            for (int i = 0; i < ManuButtons.Count; i++)
            {
                RMS_RoleManuButtons item = new RMS_RoleManuButtons();
                item.Id = Guid.NewGuid();
                string[] data = ManuButtons[i].Split(':');
                if (!string.IsNullOrEmpty(data[0]) && !string.IsNullOrEmpty(data[1]))
                {
                    item.RoleId = roleid;
                    var             sql   = RMS_MenuButtonsSet.SelectAll().Where(RMS_MenuButtonsSet.ManuId.Equal(Guid.Parse(data[0])).And(RMS_MenuButtonsSet.ButtonId.Equal(Guid.Parse(data[1]))));
                    RMS_MenuButtons bItem = MBBiz.GetEntity(sql);
                    if (bItem != null)
                    {
                        item.MenuButtonsId = bItem.Id;
                    }

                    RMBBiz.Add(item);
                    res++;
                }
            }
            if (res == manu.Count + ManuButtons.Count)
            {
                SysOperateLogBiz.AddSysOperateLog(UserData.Id.ToString(), UserData.UserName, e3net.Mode.OperatEnumName.分配权限, "角色管理--分配权限", true, WebClientIP, "角色管理");

                return("ok");
            }
            else
            {
                SysOperateLogBiz.AddSysOperateLog(UserData.Id.ToString(), UserData.UserName, e3net.Mode.OperatEnumName.分配权限, "角色管理--分配权限", false, WebClientIP, "角色管理");

                return("Nok");
            }
        }
        /// <summary>
        /// 获取某个角色的权限 数据不要乱改啊!!
        /// </summary>
        /// <param name="Id">角色的Id</param>
        /// <returns></returns>
        public string GetManeOP(string Id)
        {
            string menus = " [\n";

            var    sql       = RMS_MenusSet.SelectAll();
            string SysRoleId = ConfigurationManager.AppSettings["SysRoleId"].ToString();

            if (!UserData.RoleId.ToString().Equals(SysRoleId))//不是系统管理员的角色,只能返回自己的菜单
            {
                sql = RMS_MenusSet.SelectAll().Where(RMS_MenusSet.Id.In(RMS_RoleManusSet.Select(RMS_RoleManusSet.ManuId).Where(RMS_RoleManusSet.RoleId.Equal(UserData.RoleId))));
            }
            List <RMS_Menus>         list = RDBiz.GetOwnList <RMS_Menus>(sql);                                                                                                  //所有的菜单集
            List <RMS_Buttons>       listControlButtons  = RDBiz.GetOwnList <RMS_Buttons>(RMS_ButtonsSet.SelectAll());                                                          //所有的按钮
            List <RMS_RoleManus>     listRoleColumns     = RDBiz.GetOwnList <RMS_RoleManus>(RMS_RoleManusSet.SelectAll().Where(RMS_RoleManusSet.RoleId.Equal(Id)));             //这个角色已经添加的菜单
            List <V_RoleManuButtons> listRoleMenuButtons = RDBiz.GetOwnList <V_RoleManuButtons>(V_RoleManuButtonsSet.SelectAll().Where(V_RoleManuButtonsSet.RoleId.Equal(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);
        }
Example #3
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);
        }