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