123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Acl\AclResource;
- class TreeBuilder
- {
- /**
- * Transform resource list into sorted resource tree that includes only active resources
- *
- * @param array $resourceList
- * @return array
- */
- public function build(array $resourceList)
- {
- $result = [];
- foreach ($resourceList as $resource) {
- if ($resource['disabled']) {
- continue;
- }
- unset($resource['disabled']);
- $resource['children'] = $this->build($resource['children']);
- $result[] = $resource;
- }
- usort($result, [$this, '_sortTree']);
- return $result;
- }
- /**
- * Sort ACL resource nodes
- *
- * @param array $nodeA
- * @param array $nodeB
- * @return int
- */
- protected function _sortTree(array $nodeA, array $nodeB)
- {
- return $nodeA['sortOrder'] < $nodeB['sortOrder'] ? -1 : ($nodeA['sortOrder'] > $nodeB['sortOrder'] ? 1 : 0);
- }
- }
|