示例#1
0
 /**
  * Create an object
  *
  * @param  ContainerInterface $container
  * @param  string             $requestedName
  * @param  null|array         $options
  * @return object
  * @throws ServiceNotFoundException if unable to resolve the service.
  * @throws ServiceNotCreatedException if an exception is raised when
  *     creating a service.
  * @throws ContainerException if any other error occurs
  */
 public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
 {
     /* @var \ZfjRbac\Options\ModuleOptions $moduleOptions */
     $moduleOptions = $container->get('ZfjRbac\\Options\\ModuleOptions');
     $this->setCreationOptions($options);
     /* @var \ZfjRbac\Service\RoleService $roleService */
     $roleService = $container->get('ZfjRbac\\Service\\RoleService');
     $routeGuard = new RouteGuard($roleService, $this->options);
     $routeGuard->setProtectionPolicy($moduleOptions->getProtectionPolicy());
     return $routeGuard;
 }
示例#2
0
 /**
  * @dataProvider routeDataProvider
  */
 public function testRouteGranted(array $rules, $matchedRouteName, array $rolesConfig, $identityRole, $isGranted, $protectionPolicy)
 {
     $event = new MvcEvent();
     $routeMatch = new RouteMatch([]);
     $routeMatch->setMatchedRouteName($matchedRouteName);
     $event->setRouteMatch($routeMatch);
     $identity = $this->getMock('ZfjRbac\\Identity\\IdentityInterface');
     $identity->expects($this->any())->method('getRoles')->will($this->returnValue($identityRole));
     $identityProvider = $this->getMock('ZfjRbac\\Identity\\IdentityProviderInterface');
     $identityProvider->expects($this->any())->method('getIdentity')->will($this->returnValue($identity));
     $roleProvider = new InMemoryRoleProvider($rolesConfig);
     $roleService = new RoleService($identityProvider, $roleProvider, new RecursiveRoleIteratorStrategy());
     $routeGuard = new RouteGuard($roleService, $rules);
     $routeGuard->setProtectionPolicy($protectionPolicy);
     $this->assertEquals($isGranted, $routeGuard->isGranted($event));
 }