Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * Returns rows grouped by class name
  *
  * @param array $rows
  * @param string $entityClass
  *
  * @return array
  */
 protected function getGroupedRows($rows, $entityClass)
 {
     $result = [];
     $classNames = $this->shareScopeProvider->getClassNamesBySharingScopeConfig($entityClass);
     if (!$classNames) {
         return $result;
     }
     foreach ($classNames as $className) {
         $children = [];
         $classLabel = '';
         foreach ($rows as $row) {
             if ($row['entityClass'] === $className) {
                 $classLabel = $row['classLabel'];
                 $child = $row;
                 $children[] = $child;
             }
         }
         if ($children) {
             $result[] = ['text' => $classLabel, 'children' => $children];
         }
     }
     return $result;
 }