public static PermissionCheckContext Create(ControlPointRegistry registry, CurrentUserContext userContext, PermissionCheckRequirement requirement, params string[] permissionIds)
        {
            var context = new PermissionCheckContext
            {
                ControlPointRegistry = registry,
                Requirement          = requirement,
                UserContext          = userContext
            };

            context.AddCheckPermissionIds(permissionIds);
            return(context);
        }
Пример #2
0
        public async Task <PermissionCheckResult> CheckAsync(PermissionCheckContext checkContext)
        {
            var results = new List <PermissionCheckResult>();

            foreach (var logicProvider in _providers)
            {
                var shouldCare = await logicProvider.ShouldCareAsync(checkContext);

                if (shouldCare)
                {
                    var permissionCheckResult = await logicProvider.CheckPermissionAsync(checkContext);

                    results.Add(permissionCheckResult);
                }
            }
            return(results.Combine());
        }