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); } }
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)); }
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)); }
public Task <bool> IsEnabledAsync(SimpleStateCheckerContext <SimpleStateCheckerTestBase.MyStateEntity> context) { context.State.GlobalCheckCount += 1; return(Task.FromResult(context.State.LastModificationTime.HasValue)); }
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))); }