示例#1
0
 public ToolbarConfigurationContext(ITheme currentTheme, Toolbar toolbar, IServiceProvider serviceProvider)
 {
     Theme           = currentTheme;
     Toolbar         = toolbar;
     ServiceProvider = serviceProvider;
 }
示例#2
0
        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);
            }
        }
示例#3
0
        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)