Exemple #1
0
        public static void load(IHtmlHelper htmlHelper, ClaimsPrincipal User)
        {
            var _user = Newtonsoft.Json.JsonConvert.DeserializeObject <SysUserView>(User.Identities.First(u => u.IsAuthenticated).FindFirst(ClaimTypes.UserData).Value);

            if (_user.UserType == UserType.SuperUser)
            {
                htmlHelper.ViewContext.FormContext.FormData["IsAdmin"] = true;
            }
            else
            {
                var _role = _user.userrole.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(s => Convert.ToInt64(s)).ToList();
                if (htmlHelper.ViewContext.RouteData.Values.ContainsKey("controller") && htmlHelper.ViewContext.RouteData.Values["controller"] != null && htmlHelper.ViewContext.RouteData.Values["controller"].ToString() == "CompanyObject")
                {
                    htmlHelper.ViewContext.FormContext.FormData["button_Import"] = false;
                }
                //判断是否存在控制器和方法
                string controller = "";
                string action     = "";
                string area       = "";
                if (IsRouteDataKeys(htmlHelper.ViewContext.RouteData, ref area, ref controller, ref action))
                {
                    //q =>this.UserID, "/" + controller + "/", RoleIDs);
                    var rolebtn  = new SysRoleButtonDAL().Query((s) => _role.Contains(s.RoleId)).list.Select(s => s.ButtonId).ToList();
                    var showbtns = new SysMenuButtonDAL().Query(s =>
                                                                s.Menu.MenuUrl.IndexOf(area + "/" + controller + "/" + action) != -1 &&
                                                                rolebtn.Contains(s.Id));

                    foreach (SysMenuButton item in showbtns.list)
                    {
                        if (item.Category == (int)SysModuleButtonCategory.ToolbarButton)
                        {
                            SetPurviewViewData(htmlHelper, item.ButtonCode, "button_");
                        }
                        else if (item.Category == (int)SysModuleButtonCategory.ListButton)
                        {
                            SetPurviewViewData(htmlHelper, item.ButtonCode, "list_");
                        }
                        else if (item.Category == (int)SysModuleButtonCategory.GeneralButton)
                        {
                            SetPurviewViewData(htmlHelper, item.ButtonCode, "button_");
                            SetPurviewViewData(htmlHelper, item.ButtonCode, "list_");
                        }
                    }
                }
            }
        }
Exemple #2
0
        public async Task <ActionResult> GetTree(long id, int type = 1)
        {
            //已授权的角色菜单
            var roleMenus = await SysRoleMenuDAL.QueryUserRole(u => u.RoleId == Convert.ToInt32(id), null, null);

            var roleButtons = await SysRoleButtonDAL.QueryAsync(u => u.RoleId == Convert.ToInt32(id), null, null);

            //所有状态为有效的菜单
            (List <SysMenu> list, long count)menus = await SysMenuDAL.QueryAsync(w => w.Status == 1);

            var lists = menus.list.Select(s =>
            {
                var btns    = s.SysMenuButtons ?? new List <SysMenuButton>();
                var newBtns = btns.Select(b => new TreeNode
                {
                    id        = b.Id.ToString(),
                    name      = b.ButtonCode,
                    title     = b.ButtonName,
                    ischecked = roleButtons.list.Exists(e => e.ButtonId == b.Id)
                }).ToList();

                var strbtns = Newtonsoft.Json.JsonConvert.SerializeObject(newBtns);
                return(new SysMenuTreeNode
                {
                    ischecked = roleMenus.list.Exists(ss => ss.MenuId == s.Id),
                    name = s.MenuName,
                    title = s.MenuName,
                    pid = (s.ParentID ?? 0).ToString(),
                    id = s.Id.ToString(),
                    //buttons = newBtns,
                    jsonButtons = strbtns
                });
            }).ToList();

            return(Json(lists));
        }