Exemple #1
0
        private IEnumerable <Principal> FindByWildcard(CPN principal)
        {
            var all = GetQuery().ToList();

            return(all
                   .Where(p => principal.IsWildcardMatch(CPN.FromValue(p.CanonicalName)))
                   .Select(ToModel));
        }
 public IEnumerable <DataProvider> All()
 {
     return(this.context.DataProviders.Include(p => p.Principal).ToList().Select(p => new DataProvider()
     {
         Principal = CPN.FromValue(p.Principal.CanonicalName),
         Identifier = CRN.FromValue(p.CanonicalName),
         Name = p.Name
     }));
 }
Exemple #3
0
 private Principal ToModel(Persistance.Models.Principal entity)
 {
     if (entity == null)
     {
         return(null);
     }
     return(Principal.From(CPN.FromValue(entity.CanonicalName))
            .WithChildren(entity.ChildRelations.Select(r => CPN.FromValue(r.Child.CanonicalName)).ToArray()));
 }
 private PermissionGrant ToModel(Persistance.Models.PermissionGrant entity)
 {
     return(new PermissionGrant()
     {
         Id = entity.PermissionGrantId,
         Principal = CPN.FromValue(entity.Principal.CanonicalName),
         Schema = CSN.FromValue(entity.Schema.CanonicalName),
         Actions = entity.Actions.Select(a => ResourceAction.FromValue(a.Action.CanonicalName)).ToList(),
         Resource = entity.Resources.Select(r => CRN.FromValue(r.Resource.CanonicalName)).ToList()
     });
 }
Exemple #5
0
        public IActionResult AddRelation([FromRoute] string id, [FromBody] string relation)
        {
            var parent = CPN.FromValue(id);
            var found  = this.storage.Find(parent).FirstOrDefault();

            if (found == null)
            {
                return(NotFound());
            }

            var child = CPN.FromValue(relation);

            if (!this.storage.AddRelation(parent, child))
            {
                return(NoContent());
            }

            return(Created(Url.RouteUrl(new { controller = "Principal", action = "Get", id = found.Id }), found));
        }
 public IEnumerable <DataProviderPolicy> GetPoliciesForSchema(CSN schema)
 {
     return(this.context.DataProviderPolicies
            .Include(p => p.Provider)
            .Include(p => p.Schema)
            .Include(p => p.PolicyItems)
            .ThenInclude(i => i.Principal)
            .Where(p => p.Schema.CanonicalName == schema.ToString())
            .ToList()
            .Select(p => new DataProviderPolicy()
     {
         Provider = CRN.FromValue(p.Provider.CanonicalName),
         Schema = CSN.FromValue(p.Schema.CanonicalName),
         Rule = p.PolicyItems.Select(i => new DataProviderPolicyRule()
         {
             Principal = CPN.FromValue(i.Principal.CanonicalName),
             Allow = i.Allow,
             Deny = i.Deny
         }).ToList()
     }));
 }
        public IActionResult Get([FromRoute] string principal, [FromQuery] string schema = null)
        {
            IEnumerable <PermissionGrant> results;
            var principalRn = CPN.FromValue(HttpUtility.UrlDecode(principal));

            if (schema == null)
            {
                results = this.grantFinder.Find(principalRn);
            }
            else
            {
                var schemaRn = CSN.FromValue(HttpUtility.UrlDecode(schema));
                results = this.grantFinder.Find(principalRn, schemaRn);
            }

            if (!results.Any())
            {
                return(NotFound());
            }
            return(Ok(results));
        }