public function testAclCondition() { $condition = new AclCondition('testClass', 'id', array(1)); $this->assertEquals('testClass', $condition->getEntityAlias()); $this->assertEquals('id', $condition->getEntityField()); $this->assertEquals(array(1), $condition->getValue()); $condition->setEntityAlias('anotherClass'); $condition->setEntityField('owner'); $condition->setValue(array(2)); $this->assertEquals('anotherClass', $condition->getEntityAlias()); $this->assertEquals('owner', $condition->getEntityField()); $this->assertEquals(array(2), $condition->getValue()); }
/** * Generates "organization_id=value" condition * * @param AclCondition $whereCondition * * @return ConditionalPrimary|bool */ protected function getOrganizationCheckCondition(AclCondition $whereCondition) { if ($whereCondition->getOrganizationField() && $whereCondition->getOrganizationValue() !== null) { $organizationValue = $whereCondition->getOrganizationValue(); $pathExpression = new PathExpression(self::EXPECTED_TYPE, $whereCondition->getEntityAlias(), $whereCondition->getOrganizationField()); $pathExpression->type = PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION; $resultCondition = new ConditionalPrimary(); if (is_array($organizationValue)) { $resultCondition->simpleConditionalExpression = $this->getInExpression($whereCondition, 'organizationValue', 'organizationField'); return $resultCondition; } else { $leftExpression = new ArithmeticExpression(); $leftExpression->simpleArithmeticExpression = $pathExpression; $rightExpression = new ArithmeticExpression(); $rightExpression->simpleArithmeticExpression = new Literal(Literal::NUMERIC, (int) $organizationValue); $resultCondition->simpleConditionalExpression = new ComparisonExpression($leftExpression, '=', $rightExpression); return $resultCondition; } } return false; }
public function testAclCondition() { $condition = new AclCondition('testClass', 'id', array(1)); $this->assertEquals('testClass', $condition->getEntityAlias()); $this->assertEquals('id', $condition->getEntityField()); $this->assertEquals(array(1), $condition->getValue()); $condition->setEntityAlias('anotherClass'); $condition->setEntityField('owner'); $condition->setValue(array(2)); $this->assertEquals('anotherClass', $condition->getEntityAlias()); $this->assertEquals('owner', $condition->getEntityField()); $this->assertEquals(array(2), $condition->getValue()); $this->assertEquals(PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $condition->getPathExpressionType()); $condition->setPathExpressionType(PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION); $this->assertEquals(PathExpression::TYPE_COLLECTION_VALUED_ASSOCIATION, $condition->getPathExpressionType()); }
/** * Get array with literal from acl condition value array * * @param AclCondition $whereCondition * @return array */ protected function getLiterals(AclCondition $whereCondition) { $literals = []; if (!is_array($whereCondition->getValue())) { $whereCondition->setValue(array($whereCondition->getValue())); } foreach ($whereCondition->getValue() as $value) { $literals[] = new Literal(Literal::NUMERIC, $value); } return $literals; }