/** * 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; }