public ActionResult Index() { List <Menu> topMenuList = new List <Menu>(); //页面顶部菜单 List <Menu> leftMenuList = new List <Menu>(); //页面左侧菜单 if (UserContext.CurrentUser.GId == 1) { //如果是平台管理员 //获取父级菜单 var parentMenuList = GetMenuListBy(0); //获取第一个菜单的子级 var kidMenuList = new List <Menu>(); if (parentMenuList != null && parentMenuList.Any()) { var first = parentMenuList[0]; kidMenuList = GetMenuListBy(first.Id); if (kidMenuList == null) { kidMenuList = new List <Menu>(); } } ViewBag.User = UserContext.CurrentUser; ViewBag.KidMenuList = kidMenuList; topMenuList = parentMenuList; } else { //如果不是平台管理员 //获取用户权限 var groupAuthList = GroupAuthorityBll.GetGroupAuthorityList(UserContext.CurrentUser.GId); if (groupAuthList != null && groupAuthList.Any()) { //获取所有菜单 var menuList = MenuBll.GetMenus(); var parentList = menuList.Where(m => m.Pid == 0); foreach (var menu in parentList) { //获取所有的子菜单 var kidList = menuList.Where(m => m.Pid == menu.Id); if (kidList == null || !kidList.Any()) { continue; } foreach (var auth in groupAuthList) { if (kidList.FirstOrDefault(m => m.Id == auth.MenuId) != null) { if (topMenuList.FirstOrDefault(m => m.Id == menu.Id) == null) { topMenuList.Add(menu); } } } } if (topMenuList.Any()) { var first = topMenuList[0]; var kidList = menuList.Where(m => m.Pid == first.Id); foreach (var auth in groupAuthList) { var menu = kidList.FirstOrDefault(m => m.Id == auth.MenuId); if (menu != null && !leftMenuList.Exists(m => m.Id == menu.Id)) { leftMenuList.Add(menu); } } } } ViewBag.User = UserContext.CurrentUser; ViewBag.KidMenuList = leftMenuList; } ViewBag.PosEnabledMenus = string.Join(",", PosDefineBll.GetEnabledMenus().ToArray()); return(View(topMenuList)); }
public JsonResult SaveAuth(long groupId, GroupAuthModel[] models) { var apiResult = new APIResult(); if (groupId == 1) { apiResult.Ret = -1; apiResult.Msg = "不可设置平台管理员权限"; return(Json(apiResult)); } List <GroupAuthority> authList = new List <GroupAuthority>(); if (models.Length == 0) { apiResult.Ret = -1; apiResult.Msg = "请选择权限"; return(Json(apiResult)); } //获取所有菜单 var menuList = MenuBll.GetMenus(); //获取所有按钮 var btnList = FuncBtnBll.GetList(); try { foreach (var item in models) { long menuId = item.id; var menu = menuList.FirstOrDefault(m => m.Id == menuId); if (menu == null) { continue; } string btnsStr = item.btnIdStr; if (string.IsNullOrWhiteSpace(btnsStr)) { continue; } string[] btnIdArray = btnsStr.Split(','); if (btnIdArray.Length == 0) { continue; } foreach (var btnIdString in btnIdArray) { long btnId = 0; if (long.TryParse(btnIdString, out btnId)) { var funcBtn = btnList.FirstOrDefault(m => m.Id == btnId); authList.Add(new GroupAuthority() { GroupId = groupId, MenuId = menuId, MenuController = menu.MenuController, FuncBtnId = funcBtn.Id, FuncBtnName = funcBtn.Name, FuncBtnCode = funcBtn.Code, Seq = funcBtn.Seq, CDate = TypeConvert.DateTimeToInt(DateTime.Now) }); } } } if (authList.Count == 0) { GroupAuthorityBll.Delete(groupId); } else { GroupAuthorityBll.Delete(groupId); authList.ForEach(m => { GroupAuthorityBll.AddOrUpdate(m); }); } } catch (Exception ex) { apiResult.Ret = -1; apiResult.Msg = ex.Message; if (!(ex is OperationExceptionFacade)) { LogFactory.GetLogger().Log(LogLevel.Error, ex); } } return(Json(apiResult)); }
public JsonResult GetLeftMenu(long topMenuId) { if (UserContext.CurrentUser.GId == 1) { //如果是平台管理员 //获取父级菜单 var parentMenuList = GetMenuListBy(0); var kidMenuList = new List <Menu>(); if (parentMenuList != null && parentMenuList.Any()) { if (topMenuId <= 0) { //获取第一个菜单的子级 var first = parentMenuList[0]; kidMenuList = GetMenuListBy(first.Id); if (kidMenuList == null) { kidMenuList = new List <Menu>(); } } else { var first = parentMenuList.FirstOrDefault(m => m.Id == topMenuId); if (first != null) { kidMenuList = GetMenuListBy(first.Id); if (kidMenuList == null) { kidMenuList = new List <Menu>(); } } } } kidMenuList = kidMenuList.Where(a => a.IsStop == false).ToList(); kidMenuList = kidMenuList.OrderBy(a => a.Seq).ToList(); return(Json(kidMenuList, JsonRequestBehavior.AllowGet)); } else { List <Menu> leftMenuList = new List <Menu>();//页面左侧菜单 //获取用户权限 var groupAuthList = GroupAuthorityBll.GetGroupAuthorityList(UserContext.CurrentUser.GId); if (groupAuthList == null || !groupAuthList.Any()) { return(Json(leftMenuList, JsonRequestBehavior.AllowGet)); } //获取菜单 var parent = MenuBll.GetById(topMenuId); //获取所有菜单 var menuList = MenuBll.GetMenus(); //获取所有的子菜单 var kidList = menuList.Where(m => m.Pid == parent.Id); if (kidList != null && kidList.Any()) { foreach (var auth in groupAuthList) { var menu = kidList.FirstOrDefault(m => m.Id == auth.MenuId); if (menu != null && !leftMenuList.Exists(m => m.Id == menu.Id)) { leftMenuList.Add(menu); } } } leftMenuList = leftMenuList.Where(a => a.IsStop == false).ToList(); leftMenuList = leftMenuList.OrderBy(a => a.Seq).ToList(); return(Json(leftMenuList, JsonRequestBehavior.AllowGet)); } }
public string GetList(long groupId = 0) { var data = GroupAuthorityBll.GetList(groupId); return(JsonConvert.SerializeObject(data)); }