/** * Returns TRUE if access is granted on the given privilege target in the current security context * or if set based on the override decision value. * * @param string $privilegeTargetIdentifier The identifier of the privilege target to decide on * @param array $privilegeParameters Optional array of privilege parameters (simple key => value array) * @return boolean TRUE if access is granted, FALSE otherwise */ public function isPrivilegeTargetGranted($privilegeTargetIdentifier, array $privilegeParameters = []) { if ($this->overrideDecision === false) { return false; } elseif ($this->overrideDecision === true) { return true; } return parent::isPrivilegeTargetGranted($privilegeTargetIdentifier, $privilegeParameters); }
/** * @test */ public function isPrivilegeTargetGrantedReturnsTrueIfThereIsNoDenyVoteAndOneGrantVote() { $mockRole1 = $this->getMockBuilder(Security\Policy\Role::class)->disableOriginalConstructor()->getMock(); $mockRole1->expects($this->any())->method('getPrivilegeForTarget')->will($this->returnValue($this->abstainPrivilege)); $mockRole2 = $this->getMockBuilder(Security\Policy\Role::class)->disableOriginalConstructor()->getMock(); $mockRole2->expects($this->any())->method('getPrivilegeForTarget')->will($this->returnValue($this->grantPrivilege)); $mockRole3 = $this->getMockBuilder(Security\Policy\Role::class)->disableOriginalConstructor()->getMock(); $mockRole3->expects($this->any())->method('getPrivilegeForTarget')->will($this->returnValue($this->abstainPrivilege)); $this->mockSecurityContext->expects($this->any())->method('getRoles')->will($this->returnValue([$mockRole1, $mockRole2, $mockRole3])); $this->assertTrue($this->privilegeManager->isPrivilegeTargetGranted('somePrivilegeTargetIdentifier')); }