public function testGet() { $andCriteriaStrategy = CriteriaFactory::get('AND'); $orCriteriaStrategy = CriteriaFactory::get('OR'); $otherCriteriaStrategy = CriteriaFactory::get('OTHER'); $this->assertInstanceOf('Rheck\\AccessControlBundle\\Strategy\\Criteria\\CriteriaStrategyInterface', $andCriteriaStrategy); $this->assertInstanceOf('Rheck\\AccessControlBundle\\Strategy\\Criteria\\CriteriaStrategyInterface', $orCriteriaStrategy); $this->assertFalse($otherCriteriaStrategy); }
public function run($permissions, $context, $criteria) { if (false === ($loggedUser = $this->securityContextAdapter->getLogged())) { return false; } $context = mb_strtoupper($context); $criteria = mb_strtoupper($criteria); $permissions = is_array($permissions) ? $permissions : array($permissions); $countPermissions = count($permissions); $allowedPermissions = $this->getAllowedPermissions($loggedUser); $unallowedPermissions = $this->getUnallowedPermissions($permissions, $allowedPermissions, $context); $criteriaStrategy = CriteriaFactory::get($criteria); return $criteriaStrategy->validate($unallowedPermissions, $countPermissions); }