/** * @param string $entityClass * * @return array */ public function getSupportedGridsInfo($entityClass) { $entityClass = $this->entityClassNameHelper->resolveEntityClass($entityClass); $results = []; if (!$this->configManager->hasConfig($entityClass)) { return $results; } $shareScopes = $this->configManager->getProvider('security')->getConfig($entityClass)->get('share_scopes'); if (!$shareScopes) { return $results; } $classNames = $this->shareScopeProvider->getClassNamesBySharingScopes($shareScopes); foreach ($classNames as $className) { $results[] = ['isGranted' => $this->securityFacade->isGranted('VIEW', 'entity:' . $className), 'label' => $this->getClassLabel($className), 'className' => $className, 'first' => false, 'gridName' => $this->getGridName($className)]; } usort($results, function ($itemA) { return $itemA['isGranted'] ? -1 : 1; }); !empty($results[0]) && ($results[0]['first'] = true); return $results; }