public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
 {
     /* @var \Rbac\Rbac $rbac */
     $rbac = $container->get('Rbac\\Rbac');
     /* @var \ZfjRbac\Service\RoleService $roleService */
     $roleService = $container->get('ZfjRbac\\Service\\RoleService');
     /* @var \ZfjRbac\Assertion\AssertionPluginManager $assertionPluginManager */
     $assertionPluginManager = $container->get('ZfjRbac\\Assertion\\AssertionPluginManager');
     /* @var \ZfjRbac\Options\ModuleOptions $moduleOptions */
     $moduleOptions = $container->get('ZfjRbac\\Options\\ModuleOptions');
     $authorizationService = new AuthorizationService($rbac, $roleService, $assertionPluginManager);
     $authorizationService->setAssertions($moduleOptions->getAssertionMap());
     return $authorizationService;
 }
예제 #2
0
 public function testAssertionMap()
 {
     $rbac = $this->getMock('Rbac\\Rbac', [], [], '', false);
     $roleService = $this->getMock('ZfjRbac\\Service\\RoleService', [], [], '', false);
     $assertionPluginManager = $this->getMock('ZfjRbac\\Assertion\\AssertionPluginManager', [], [], '', false);
     $authorizationService = new AuthorizationService($rbac, $roleService, $assertionPluginManager);
     $authorizationService->setAssertions(['foo' => 'bar', 'bar' => 'foo']);
     $this->assertTrue($authorizationService->hasAssertion('foo'));
     $this->assertTrue($authorizationService->hasAssertion('bar'));
     $authorizationService->setAssertion('bar', null);
     $this->assertFalse($authorizationService->hasAssertion('bar'));
 }