/** * @param \Zend\ServiceManager\AbstractPluginManager|ServiceLocatorInterface $serviceLocator * @return RouteGuard */ public function createService(ServiceLocatorInterface $serviceLocator) { $parentLocator = $serviceLocator->getServiceLocator(); /* @var \ZfjRbac\Options\ModuleOptions $moduleOptions */ $moduleOptions = $parentLocator->get('ZfjRbac\\Options\\ModuleOptions'); /* @var \ZfjRbac\Service\AuthorizationService $authorizationService */ $authorizationService = $parentLocator->get('ZfjRbac\\Service\\AuthorizationService'); $routeGuard = new RoutePermissionsGuard($authorizationService, $this->options); $routeGuard->setProtectionPolicy($moduleOptions->getProtectionPolicy()); return $routeGuard; }
/** * @dataProvider routeDataProvider */ public function testRoutePermissionGranted(array $rules, $matchedRouteName, array $identityPermissions, $isGranted, $protectionPolicy) { $routeMatch = new RouteMatch([]); $routeMatch->setMatchedRouteName($matchedRouteName); $event = new MvcEvent(); $event->setRouteMatch($routeMatch); $authorizationService = $this->getMock('ZfjRbac\\Service\\AuthorizationServiceInterface', [], [], '', false); $authorizationService->expects($this->any())->method('isGranted')->will($this->returnValueMap($identityPermissions)); $routeGuard = new RoutePermissionsGuard($authorizationService, $rules); $routeGuard->setProtectionPolicy($protectionPolicy); $this->assertEquals($isGranted, $routeGuard->isGranted($event)); }