/** * @test */ public function isAccessibleReturnsTrueIfRoleIsEveryone() { /** @var SecurityContext|\PHPUnit_Framework_MockObject_MockObject $mockSecurityContext */ $mockSecurityContext = $this->createMock(SecurityContext::class); $mockSecurityContext->expects($this->at(0))->method('canBeInitialized')->will($this->returnValue(true)); $mockSecurityContext->expects($this->at(1))->method('hasRole')->with('SomeRole')->will($this->returnValue(false)); $mockSecurityContext->expects($this->at(2))->method('hasRole')->with('Everyone')->will($this->returnValue(true)); $this->inject($this->nodeData, 'securityContext', $mockSecurityContext); $this->nodeData->setAccessRoles(array('SomeRole', 'Everyone', 'SomeOtherRole')); $this->assertTrue($this->nodeData->isAccessible()); }
/** * Sets the roles which are required to access this node * * @param array $accessRoles * @return void * @api */ public function setAccessRoles(array $accessRoles) { if (!$this->isNodeDataMatchingContext()) { $this->materializeNodeData(); } if ($this->getAccessRoles() === $accessRoles) { return; } $this->nodeData->setAccessRoles($accessRoles); $this->context->getFirstLevelNodeCache()->flush(); $this->emitNodeUpdated($this); }