Exemplo n.º 1
0
        public async Task <IViewComponentResult> InvokeAsync(long?pid)
        {
            var userId = HttpContext.User.GetUserIdOrZero();

            if (userId == 0)
            {
                return(View(new List <MenuDto>()));
            }

            //取得所有authcode
            var codes = await authService.GetUserAuthCodesAsync(userId, false);

            List <MenuDto> list = await service.GetMenuTreeAsync();

            void CheckAuth(MenuDto menu)
            {
                if (string.IsNullOrEmpty(menu.AuthCode) || codes.Contains("ku.develop") || codes.Contains(menu.AuthCode))
                {
                    menu.HasAuth = true;
                }
                else
                {
                    menu.HasAuth = false;
                }

                foreach (var sub in menu.SubMenus)
                {
                    CheckAuth(sub);
                }
            }

            list.ForEach(x => CheckAuth(x));
            return(View(list));
        }
Exemplo n.º 2
0
        public async Task <IViewComponentResult> InvokeAsync()
        {
            List <string> codesList = new List <string>();
            var           userId    = HttpContext.User.GetUserIdOrZero();

            if (userId == 0)
            {
                return(View(codesList));
            }

            codesList = await service.GetUserAuthCodesAsync(userId, true);

            return(View(codesList));
        }