Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }