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;
 }
Пример #3
0
 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());
 }
Пример #4
0
 /**
  * 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;
 }