public function setUp()
 {
     $this->user = $this->prophesize(UserInterface::class);
     $this->token = $this->prophesize(TokenInterface::class);
     $this->token->getUser()->willReturn($this->user);
     $this->accessControlManager = $this->prophesize(AccessControlManagerInterface::class);
     $this->tokenStorage = $this->prophesize(TokenStorageInterface::class);
     $this->tokenStorage->getToken()->willReturn($this->token->reveal());
     $this->securedEntitySubscriber = new SecuredEntitySubscriber($this->accessControlManager->reveal(), $this->tokenStorage->reveal());
     $this->visitor = $this->prophesize(GenericSerializationVisitor::class);
     $this->objectEvent = $this->prophesize(ObjectEvent::class);
     $this->objectEvent->getVisitor()->willReturn($this->visitor);
 }
예제 #2
0
 public function testNegativeVoteWithMultipleAttributes()
 {
     $securityCondition = new SecurityCondition('sulu.security.roles', null);
     $this->accessControlManager->getUserPermissions($securityCondition, $this->user)->willReturn(['view' => true, 'add' => true, 'security' => false]);
     $access = $this->voter->vote($this->token->reveal(), $securityCondition, ['view', 'security']);
     $this->assertSame(VoterInterface::ACCESS_DENIED, $access);
 }
예제 #3
0
 public function setUp()
 {
     parent::setUp();
     $this->loadClassMetadataEvent = $this->prophesize('Doctrine\\ORM\\Event\\LoadClassMetadataEventArgs');
     $this->onFlushEvent = $this->prophesize('Doctrine\\ORM\\Event\\OnFlushEventArgs');
     $this->userBlameObject = $this->prophesize('\\stdClass')->willImplement('Sulu\\Component\\Persistence\\Model\\UserBlameInterface');
     $this->classMetadata = $this->prophesize('Doctrine\\ORM\\Mapping\\ClassMetadata');
     $this->refl = $this->prophesize('\\ReflectionClass');
     $this->entityManager = $this->prophesize('Doctrine\\ORM\\EntityManager');
     $this->unitOfWork = $this->prophesize('Doctrine\\ORM\\UnitOfWork');
     $this->user = $this->prophesize('Sulu\\Component\\Security\\Authentication\\UserInterface');
     $this->token = $this->prophesize('Symfony\\Component\\Security\\Core\\Authentication\\Token\\TokenInterface');
     $this->tokenStorage = $this->prophesize('Symfony\\Component\\Security\\Core\\Authentication\\Token\\Storage\\TokenStorage');
     $this->subscriber = new UserBlameSubscriber($this->tokenStorage->reveal(), User::class);
     $this->tokenStorage->getToken()->willReturn($this->token->reveal());
     $this->token->getUser()->willReturn($this->user->reveal());
     $this->onFlushEvent->getEntityManager()->willReturn($this->entityManager);
     $this->entityManager->getUnitOfWork()->willReturn($this->unitOfWork->reveal());
 }
예제 #4
0
 public function testNegativeVoteWithMultipleAttributes()
 {
     $this->aclProvider->findAcl(Argument::any())->willThrow(AclNotFoundException::class);
     $access = $this->voter->vote($this->token->reveal(), new SecurityCondition('sulu.security.roles', null), ['view', 'security']);
     $this->assertSame(VoterInterface::ACCESS_DENIED, $access);
 }
예제 #5
0
 public function testVoteWithoutAcl()
 {
     $this->aclProvider->findAcl(Argument::cetera())->willThrow(AclNotFoundException::class);
     $this->assertEquals(VoterInterface::ACCESS_ABSTAIN, $this->accessControlVoter->vote($this->token->reveal(), new SecurityCondition('acme_example', null, '1', 'Acme\\Example'), []));
 }