public async Task <List <Menu> > GetMenu(int empresaId) { try { return(await _menuAppService.GetAll(menu => menu.Ativo == true && menu.EmpresaId == empresaId)); } catch (Exception ex) { throw new Exception(ex.Message); } }
//授权处理 protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, PolicyRequirement requirement) { //Todo:获取角色、Url 对应关系 List <Menu> list = await _menuApp.GetAll(); var httpContext = (context.Resource as AuthorizationFilterContext).HttpContext; //获取授权方式 var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); if (defaultAuthenticate != null) { //验证签发的用户信息 var result = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); if (result.Succeeded) { //判断是否为已停用的 Token if (!await _jwtApp.IsCurrentActiveTokenAsync()) { context.Fail(); return; } httpContext.User = result.Principal; //判断角色与 Url 是否对应 // var url = httpContext.Request.Path.Value; var role = httpContext.User.Claims.Where(c => c.Type == ClaimTypes.Role).Select(x => x.Value).ToList(); var menu = list.Where(x => url.Contains(x.Url) && role.Contains(x.RoleName)).FirstOrDefault(); if (menu == null) { context.Fail(); return; } /* var menu = list.Where(x => x.Role.Equals(role) && x.Url.ToLower().Equals(url)).FirstOrDefault()*/; //判断是否过期 if (DateTime.Parse(httpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Expiration).Value) >= DateTime.UtcNow) { context.Succeed(requirement); } else { context.Fail(); } return; } } context.Fail(); }
public ItemsLinkContainer <MenuViewModel> Get() { var menus = _menuAppService.GetAll().ToList(); menus.ForEach(x => x.AddRangeLink(_menuEnricher.CreateLinks(Method.Get, x))); var result = new ItemsLinkContainer <MenuViewModel>() { Items = menus }; result.AddRangeLink(_menuEnricher.CreateLinks(Method.GetAll)); return(result); }
public async Task <JsonResult> GetAsync([FromQuery] MenuQueryDto condition) { if (condition.RoleName != null || condition.Url != null) { var list = _service.Search(condition); return(new JsonResult(new { code = 20000, list })); } var items = await _service.GetAll(); return(new JsonResult(new { code = 20000, items })); }
public IEnumerable <Menu> Get() { return(_appService.GetAll()); }
public IActionResult Index() { Logger.Error("测试。"); _service.GetAll(); return(View()); }