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); }
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); }