/** * {@inheritdoc} */ public function cascadeAuthorization(Authorization $authorization, ResourceInterface $resource) { $subResources = $this->resourceGraphTraverser->getAllSubResources($resource); // Cascade authorizations $authorizations = []; foreach ($subResources as $subResource) { $authorizations[] = $authorization->createChildAuthorization($subResource); } return $authorizations; }
public function testGetSubResources() { $traverser = new ResourceGraphTraverserDispatcher(); $resource = $this->getMockForAbstractClass('MyCLabs\\ACL\\Model\\ResourceInterface'); $subTraverser = $this->getMockForAbstractClass('\\MyCLabs\\ACL\\ResourceGraph\\ResourceGraphTraverser'); $subTraverser->expects($this->once())->method('getAllSubResources')->with($resource)->will($this->returnValue(['foo'])); $traverser->setResourceGraphTraverser(get_class($resource), $subTraverser); $this->assertEquals(['foo'], $traverser->getAllSubResources($resource)); }