/** * getResourceWithNamespace * * @param string $resourceId * @param null $namespaceSeparator * * @return array */ public function getResourceWithNamespace($resourceId, $namespaceSeparator = null) { $resource = $this->resourceProvider->getResource($resourceId); $resourceTree = $this->aclResourceStackBuilder->build($resource); $ns = $this->createNamespaceId($resource, $resourceTree, $namespaceSeparator); return $this->getNsModel($resource, $ns); }
/** * getResourceLineage * - Get a resource and all of its parents as array of resources * * @param $resourceId * * @return array */ public function getResourceLineage($resourceId) { $resource = $this->resourceProvider->getResource($resourceId); if ($resource === null) { return []; } return $this->aclResourceStackBuilder->build($resource); }
/** * getResourceStack * * @param AclResource $resource * @param array $resources * @param int $nestLevel * * @return array * @throws RcmUserException */ public function getResourceStack(AclResource $resource, $resources = [], $nestLevel = 0) { if ($nestLevel > $this->maxResourceNesting) { throw new RcmUserException('Max resource nesting exceeded, max nesting level is ' . $this->maxResourceNesting); } $tempResource = [$resource->getResourceId() => $resource]; $resources = $tempResource + $resources; $parentResourceId = $resource->getParentResourceId(); $hasParent = $parentResourceId !== null; if ($hasParent) { $parentResource = $this->resourceProvider->getResource($parentResourceId); $nestLevel++; return $this->getResourceStack($parentResource, $resources, $nestLevel); } return $resources; }