public ToolbarConfigurationContext(ITheme currentTheme, Toolbar toolbar, IServiceProvider serviceProvider) { Theme = currentTheme; Toolbar = toolbar; ServiceProvider = serviceProvider; }
protected virtual async Task CheckPermissionsAsync(IServiceProvider serviceProvider, Toolbar toolbar) { foreach (var item in toolbar.Items.Where(x => !x.RequiredPermissionName.IsNullOrWhiteSpace())) { item.RequirePermissions(item.RequiredPermissionName); } var checkPermissionsToolbarItems = toolbar.Items.Where(x => x.StateCheckers.Any()).ToArray(); if (checkPermissionsToolbarItems.Any()) { var result = await SimpleStateCheckerManager.IsEnabledAsync(checkPermissionsToolbarItems); var toBeDeleted = new HashSet <ToolbarItem>(); foreach (var item in checkPermissionsToolbarItems) { if (!result[item]) { toBeDeleted.Add(item); } } toolbar.Items.RemoveAll(toBeDeleted.Contains); } }
protected virtual async Task CheckPermissionsAsync(IServiceProvider serviceProvider, Toolbar toolbar) { var requiredPermissionItems = toolbar.Items.Where(x => !x.RequiredPermissionName.IsNullOrWhiteSpace()).ToList(); if (requiredPermissionItems.Any()) { var permissionChecker = serviceProvider.GetRequiredService <IPermissionChecker>(); var grantResult = await permissionChecker.IsGrantedAsync(requiredPermissionItems.Select(x => x.RequiredPermissionName).Distinct().ToArray()); var toBeDeleted = new HashSet <ToolbarItem>(); foreach (var item in requiredPermissionItems) { if (grantResult.Result[item.RequiredPermissionName !] != PermissionGrantResult.Granted)