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()); }
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()); }
/** * 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; }
/** * Generate path expression * * @param AclCondition $whereCondition * @return PathExpression */ protected function getPathExpression(AclCondition $whereCondition) { $pathExpression = new PathExpression(self::EXPECTED_TYPE, $whereCondition->getEntityAlias(), $whereCondition->getEntityField()); $pathExpression->type = $whereCondition->getPathExpressionType(); return $pathExpression; }
/** * Generate path expression * * @param AclCondition $whereCondition * @return PathExpression */ protected function getPathExpression(AclCondition $whereCondition) { $pathExpression = new PathExpression(self::EXPECTED_TYPE, $whereCondition->getEntityAlias(), $whereCondition->getEntityField()); $pathExpression->type = PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION; return $pathExpression; }