BeiDream.Demo.Infrastructure.Security.Authorization.PermissionSupportService.GetPermissions C# (CSharp) Метод

GetPermissions() приватный Метод

从数据库权限表里,根据资源id获取此资源的所有的角色集合(权限列表)
private GetPermissions ( string resourceUri ) : List
resourceUri string 当前请求资源
Результат List
        private List<Permission> GetPermissions(string resourceUri)
        {
            //todo 先从缓存里获取,缓存没有就从数据库获取,在存入缓存中
            var resourceRepository = IocManager.Instance.Resolve<IResourceRepository>();
            var resource = resourceRepository.GetAll().Include(p => p.Permissions).SingleOrDefault(p=>p.Uri==resourceUri);
            if(resource==null)
                //throw new Exception("请求的资源未添加到数据库,请联系管理员!");
                return new List<Permission>();
            var listPermissions = resource.Permissions.Where(p => p.Enabled);
            return listPermissions.Select(item => new Permission(item.RoleId.ToString(), item.IsDeny)).ToList();

            //if (resourceUri == "/Systems/User" || resourceUri == "/Systems/User/Query")
            //{
            //    permissions.Add(new Permission("R1",false));
            //    permissions.Add(new Permission("R2", false));
            //}
            //if (resourceUri == "/Systems/Role" || resourceUri == "/Systems/Role/Query")
            //{
            //    permissions.Add(new Permission("R3", false));
            //    permissions.Add(new Permission("R4", false));
            //}
        }