Esempio n. 1
0
        public List <ActorRole> GetActorRolesForEntity(int actorId, int entityId, ClaimScope scope, bool includeClaims = false)
        {
            using (var context = ContextFactory.Create())
            {
                if (includeClaims)
                {
                    var roles = context.ActorRoles
                                .Include(r => r.Role)
                                .ThenInclude(r => r.RoleClaims)
                                .ThenInclude(rc => rc.Claim)
                                .Where(ar => ar.ActorId == actorId &&
                                       (ar.EntityId == entityId || ar.EntityId == Platform.AllId) &&
                                       ar.Role.ClaimScope == scope)
                                .ToList();

                    return(roles);
                }
                else
                {
                    var roles = context.ActorRoles
                                .Where(ar => ar.ActorId == actorId &&
                                       (ar.EntityId == entityId || ar.EntityId == Platform.AllId) &&
                                       ar.Role.ClaimScope == scope)
                                .ToList();

                    return(roles);
                }
            }
        }
 public Claim Get(ClaimScope scope, string name)
 {
     using (var context = ContextFactory.Create())
     {
         var claim = context.Claims.FirstOrDefault(c => c.ClaimScope == scope && c.Name == name);
         return(claim);
     }
 }
Esempio n. 3
0
        public Role GetDefaultForScope(ClaimScope scope)
        {
            var role = _roleDbController.GetDefault(scope);

            _logger.LogInformation($"{role?.Id} Role ID for {nameof(ClaimScope)}: {scope}");

            return(role);
        }
Esempio n. 4
0
        public List <Role> GetByScope(ClaimScope scope)
        {
            var roles = _roleDbController.Get(scope);

            _logger.LogInformation($"{roles?.Count} Roles for {nameof(ClaimScope)}: {scope}");

            return(roles);
        }
 public List <Role> Get(ClaimScope scope)
 {
     using (var context = ContextFactory.Create())
     {
         var roles = context.Roles.Where(r => r.ClaimScope == scope).ToList();
         return(roles);
     }
 }
        public List <ActorClaim> GetActorClaimsByScope(int actorId, ClaimScope scope)
        {
            var claims = GetActorClaims(actorId).ToList();

            claims = claims.Where(c => c.Claim.ClaimScope == scope).ToList();

            _logger.LogInformation($"{claims.Count} Actor Claims for ActorId: {actorId}, {nameof(ClaimScope)}: {scope}");

            return(claims);
        }
 public List <Claim> GetActorClaimsForEntity(int actorId, int entityId, ClaimScope scope)
 {
     using (var context = ContextFactory.Create())
     {
         var claims = context.ActorClaims
                      .Where(ac => ac.ActorId == actorId && (ac.EntityId == entityId || ac.EntityId == Platform.AllId))
                      .Select(ac => ac.Claim)
                      .Where(c => c.ClaimScope == scope).ToList();
         return(claims);
     }
 }
        public List <Role> GetActorRolesForEntity(int actorId, int entityId, ClaimScope scope)
        {
            var roles = _actorRoleDbController
                        .GetActorRolesForEntity(actorId, entityId, scope, true)
                        .Select(ar => ar.Role)
                        .ToList();

            _logger.LogInformation($"{roles.Count} Roles for ActorId: {actorId}, EntityId: {entityId}, {nameof(ClaimScope)}: {scope}");

            return(roles);
        }
        private static Role CreateRole(SUGARContext context, ClaimScope claimScope, bool defaultRole = true)
        {
            var role = context.Roles.Add(new Role
            {
                Name       = claimScope.ToString(),
                ClaimScope = claimScope,
                Default    = defaultRole
            }).Entity;

            context.SaveChanges();
            return(role);
        }
        public void Create(ClaimScope claimScope, int actorId, int entityId, SUGARContext context = null)
        {
            var role = _roleController.GetDefault(claimScope, context);

            _logger.LogInformation($"ClaimScope: {claimScope}, ActorId: {actorId}, EntityId: {entityId}");

            if (role != null)
            {
                Create(new ActorRole {
                    ActorId = actorId, RoleId = role.Id, EntityId = entityId
                }, context);
            }
        }
        public List <Claim> GetActorClaimsForEntity(int actorId, int entityId, ClaimScope scope)
        {
            var claims = _actorClaimDbController.GetActorClaimsForEntity(actorId, entityId, scope);

            var roleClaims = _actorRoleController.GetActorRolesForEntity(actorId, entityId, scope)
                             .SelectMany(r => r.RoleClaims)
                             .Select(rc => rc.Claim)
                             .ToList();

            var totalClaims = claims.Concat(roleClaims).Distinct().ToList();

            _logger.LogInformation($"{totalClaims.Count} Claims for ActorId: {actorId}, EntityId: {entityId}, {nameof(ClaimScope)}: {scope}");

            return(totalClaims);
        }
        public Role GetDefault(ClaimScope scope, SUGARContext context = null)
        {
            var didCreate = false;

            if (context == null)
            {
                context   = ContextFactory.Create();
                didCreate = true;
            }

            var role = context.Roles.FirstOrDefault(r => r.ClaimScope == scope && r.Default);

            if (didCreate)
            {
                context.Dispose();
            }

            return(role);
        }
        public Claim Get(ClaimScope scope, string name)
        {
            var claim = _claimDbController.Get(scope, name);

            return(claim);
        }
Esempio n. 14
0
 public AuthorizationAttribute(ClaimScope claimScope, AuthorizationAction action, AuthorizationEntity entity)
 {
     ClaimScope = claimScope;
     Name       = AuthorizationName.Generate(action, entity);
 }
Esempio n. 15
0
 public static IAuthorizationRequirement ScopeItems(this HttpContext context, ClaimScope scope)
 {
     return((IAuthorizationRequirement)context.Items[scope.Key()]);
 }
Esempio n. 16
0
 public static string Key(this ClaimScope scope)
 {
     return($"{scope}-Requirements");
 }
Esempio n. 17
0
 public AuthorizationRequirement(ClaimScope scope, string name)
 {
     ClaimScope = scope;
     Name       = name;
 }