Example #1
0
    protected virtual async Task <bool> InternalIsEnabledAsync(TState state, bool useBatchChecker)
    {
        using (var scope = ServiceProvider.CreateScope())
        {
            var context = new SimpleStateCheckerContext <TState>(scope.ServiceProvider.GetRequiredService <ICachedServiceProvider>(), state);

            foreach (var provider in state.StateCheckers.WhereIf(!useBatchChecker, x => x is not ISimpleBatchStateChecker <TState>))
            {
                if (!await provider.IsEnabledAsync(context))
                {
                    return(false);
                }
            }

            foreach (ISimpleStateChecker <TState> provider in Options.GlobalStateCheckers
                     .WhereIf(!useBatchChecker, x => !typeof(ISimpleBatchStateChecker <TState>).IsAssignableFrom(x))
                     .Select(x => ServiceProvider.GetRequiredService(x)))
            {
                if (!await provider.IsEnabledAsync(context))
                {
                    return(false);
                }
            }

            return(true);
        }
    }
Example #2
0
        public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
        {
            var isEnabled = _requiresAll
                ? _globalFeatureNames.All(x => GlobalFeatureManager.Instance.IsEnabled(x))
                : _globalFeatureNames.Any(x => GlobalFeatureManager.Instance.IsEnabled(x));

            return(Task.FromResult(isEnabled));
        }
Example #3
0
    public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <PermissionDefinition> context)
    {
        var currentTenant = context.ServiceProvider.GetRequiredService <ICurrentTenant>();

        if (!currentTenant.IsAvailable)
        {
            return(true);
        }

        var featureChecker = context.ServiceProvider.GetRequiredService <IFeatureChecker>();

        return(await featureChecker.IsEnabledAsync(SettingManagementFeatures.AllowChangingEmailSettings));
    }
    public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
    {
        var permissionChecker = context.ServiceProvider.GetRequiredService <IPermissionChecker>();

        if (_model.Permissions.Length == 1)
        {
            return(await permissionChecker.IsGrantedAsync(_model.Permissions.First()));
        }

        var grantResult = await permissionChecker.IsGrantedAsync(_model.Permissions);

        return(_model.RequiresAll
            ? grantResult.AllGranted
            : grantResult.Result.Any(x => _model.Permissions.Contains(x.Key) && x.Value == PermissionGrantResult.Granted));
    }
        public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <PermissionDefinition> context)
        {
            var currentPrincipalAccessor = context.ServiceProvider.GetRequiredService <ICurrentPrincipalAccessor>();

            return(Task.FromResult(currentPrincipalAccessor.Principal != null && currentPrincipalAccessor.Principal.IsInRole("admin")));
        }
 public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
 {
     return(Task.FromResult(context.ServiceProvider.GetRequiredService <ICurrentUser>().IsAuthenticated));
 }
        public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
        {
            var featureChecker = context.ServiceProvider.GetRequiredService <IFeatureChecker>();

            return(await featureChecker.IsEnabledAsync(_requiresAll, _featureNames));
        }
 public async Task <bool> IsEnabledAsync(SimpleStateCheckerContext <TState> context)
 {
     return((await IsEnabledAsync(new SimpleBatchStateCheckerContext <TState>(context.ServiceProvider, new[] { context.State }))).Values.All(x => x));
 }
Example #9
0
 public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context)
 {
     context.State.GlobalCheckCount += 1;
     return(Task.FromResult(context.State.LastModificationTime.HasValue));
 }
Example #10
0
 public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context)
 {
     context.State.CheckCount += 1;
     return(Task.FromResult(context.State.CreationTime > DateTime.Parse("2020-01-01", CultureInfo.InvariantCulture)));
 }