Ejemplo n.º 1
0
        /// <summary>
        /// 检验权限
        /// </summary>
        /// <param name="authorizeId">授权id(角色ID/部门ID/用户ID)</param>
        /// <param name="url">授权地址</param>
        /// <returns></returns>
        public bool CheckPermission(string authorizeId, string url)
        {
            url = url.ToLower();
            List <SysModule> menus;
            List <SysButton> buttons;
            var permissions = QueryableCache(p => p.AuthorizeId == authorizeId).Select(c => c.SysModuleId).ToList();

            if (permissions.Any())
            {
                menus   = _sysModuleService.QueryableCache(m => permissions.Contains(m.ModuleId));
                buttons = _sysButtonService.QueryableCache(b => permissions.Contains(b.ButtonId));
                if (menus.Where(m => m.UrlAddress != null && m.UrlAddress.ToLower() == url).Any() || buttons.Where(b => b.UrlAddress != null && b.UrlAddress.ToLower() == url).Any())
                {
                    return(true);
                }
            }

            return(false);
        }