Пример #1
0
        public AuthorizationRight IsAuthorized(IFubuRequestContext context)
        {
            if (!_policies.Any())
            {
                return(AuthorizationRight.Allow);
            }

            return(AuthorizationRight.Combine(_policies.Select(x => x.RightsFor(context))));
        }
        public AuthorizationRight DetermineRights(IFubuRequestContext context, IEnumerable <IAuthorizationPolicy> policies)
        {
            // Check every authorization policy for this endpoint
            var rights = policies.Select(policy => {
                var policyRights = policy.RightsFor(context);

                _logger.DebugMessage(() => new AuthorizationPolicyResult(policy, policyRights));

                return(policyRights);
            });

            // Combine the results
            var result = AuthorizationRight.Combine(rights);

            return(result);
        }
Пример #3
0
        public static AuthorizationRight Combine(IEnumerable <AuthorizationRight> rights)
        {
            AuthorizationRight answer = None;

            foreach (var right in rights)
            {
                if (right == Deny)
                {
                    return(right);
                }

                if (right.Precedence < answer.Precedence)
                {
                    answer = right;
                }
            }

            return(answer);
        }
 public AuthorizationPolicyResult(IAuthorizationPolicy policy, AuthorizationRight rights)
 {
     _rights = rights;
     _policy = Description.For(policy);
 }
 public AuthorizationResult(AuthorizationRight rights)
 {
     _rights = rights;
 }
 public AuthorizationResult(AuthorizationRight rights)
 {
     _rights = rights;
 }
 public AuthorizationPolicyResult(IAuthorizationPolicy policy, AuthorizationRight rights)
 {
     _rights = rights;
     _policy = Description.For(policy);
 }