예제 #1
0
        public async Task <bool> IsResourceIdAccessRequired(string policyName, IIamProviderCache cache)
        {
            bool?ret = cache.IsResourceIdAccessRequired(policyName);

            if (!ret.HasValue)
            {
                var policyId = await CreateOrGetPolicy(policyName);

                var policy = await _context.IamPolicyResourceIds
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.PolicyId.Equals(policyId));

                ret = policy?.RequiresResourceIdAccess;

                if (ret != null)
                {
                    cache.ToggleResourceIdAccess(policyName, policy.RequiresResourceIdAccess);
                }
            }

            return(ret.GetValueOrDefault(false));
        }
        public Task <bool> IsResourceIdAccessRequired(string policyName, IIamProviderCache cache)
        {
            var ret = cache.IsResourceIdAccessRequired(policyName);

            return(Task.FromResult(ret.GetValueOrDefault(false)));
        }