diff --git a/application/Espo/Core/Select/Applier/Appliers/AccessControlFilter.php b/application/Espo/Core/Select/Applier/Appliers/AccessControlFilter.php index ef3f38d302..61152a8fc2 100644 --- a/application/Espo/Core/Select/Applier/Appliers/AccessControlFilter.php +++ b/application/Espo/Core/Select/Applier/Appliers/AccessControlFilter.php @@ -29,9 +29,13 @@ namespace Espo\Core\Select\Applier\Appliers; +use Espo\Core\Acl; +use Espo\Core\AclManager; + +use Espo\Core\Select\OrmSelectBuilder; + use Espo\Core\{ Exceptions\Error, - AclManager, Select\SelectManager, Select\AccessControl\FilterFactory as AccessControlFilterFactory, Select\AccessControl\FilterResolverFactory as AccessControlFilterResolverFactory, @@ -44,18 +48,36 @@ use Espo\{ class AccessControlFilter { + /** + * @var Acl + */ protected $acl; protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var AccessControlFilterFactory + */ protected $accessControlFilterFactory; + /** + * @var AccessControlFilterResolverFactory + */ protected $accessControlFilterResolverFactory; + /** + * @var AclManager + */ protected $aclManager; + /** + * @var SelectManager + */ protected $selectManager; public function __construct( @@ -79,7 +101,10 @@ class AccessControlFilter public function apply(QueryBuilder $queryBuilder): void { // For backward compatibility. - if ($this->selectManager->hasInheritedAccessMethod()) { + if ( + $this->selectManager->hasInheritedAccessMethod() && + $queryBuilder instanceof OrmSelectBuilder + ) { $this->selectManager->applyAccessToQueryBuilder($queryBuilder); return; @@ -97,7 +122,10 @@ class AccessControlFilter } // For backward compatibility. - if ($this->selectManager->hasInheritedAccessFilterMethod($filterName)) { + if ( + $this->selectManager->hasInheritedAccessFilterMethod($filterName) && + $queryBuilder instanceof OrmSelectBuilder + ) { $this->selectManager->applyAccessFilterToQueryBuilder($queryBuilder, $filterName); return; diff --git a/application/Espo/Core/Select/Applier/Appliers/BoolFilterList.php b/application/Espo/Core/Select/Applier/Appliers/BoolFilterList.php index 17612d4c03..128197ae8e 100644 --- a/application/Espo/Core/Select/Applier/Appliers/BoolFilterList.php +++ b/application/Espo/Core/Select/Applier/Appliers/BoolFilterList.php @@ -29,6 +29,8 @@ namespace Espo\Core\Select\Applier\Appliers; +use Espo\Core\Select\OrmSelectBuilder; + use Espo\Core\{ Exceptions\Error, Select\SelectManager, @@ -46,10 +48,19 @@ class BoolFilterList { protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var SelectManager + */ protected $selectManager; + /** + * @var BoolFilterFactory + */ protected $boolFilterFactory; public function __construct( @@ -86,13 +97,16 @@ class BoolFilterList if ($this->boolFilterFactory->has($this->entityType, $filterName)) { $filter = $this->boolFilterFactory->create($this->entityType, $this->user, $filterName); - $whereItem = $filter->apply($queryBuilder, $orGroupBuilder); + $filter->apply($queryBuilder, $orGroupBuilder); return; } // For backward compatibility. - if ($this->selectManager->hasBoolFilter($filterName)) { + if ( + $this->selectManager->hasBoolFilter($filterName) && + $queryBuilder instanceof OrmSelectBuilder + ) { $rawWhereClause = $this->selectManager->applyBoolFilterToQueryBuilder($queryBuilder, $filterName); $whereItem = WhereClause::fromRaw($rawWhereClause); diff --git a/application/Espo/Core/Select/Applier/Appliers/Order.php b/application/Espo/Core/Select/Applier/Appliers/Order.php index 94cd11323e..2608c75e48 100644 --- a/application/Espo/Core/Select/Applier/Appliers/Order.php +++ b/application/Espo/Core/Select/Applier/Appliers/Order.php @@ -50,10 +50,19 @@ class Order { protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var MetadataProvider + */ protected $metadataProvider; + /** + * @var ItemConverterFactory + */ protected $itemConverterFactory; public function __construct( @@ -80,10 +89,8 @@ class Order if ($params->forbidComplexExpressions() && $orderBy) { if ( - !is_string($orderBy) - || - strpos($orderBy, '.') !== false - || + !is_string($orderBy) || + strpos($orderBy, '.') !== false || strpos($orderBy, ':') !== false ) { throw new Forbidden("Complex expressions are forbidden in 'orderBy'."); @@ -112,10 +119,10 @@ class Order if (!$order) { $order = $this->metadataProvider->getDefaultOrder($this->entityType); - if ($order === true || strtolower($order) === 'desc') { + if (strtolower($order) === 'desc') { $order = SearchParams::ORDER_DESC; } - else if ($order === false || strtolower($order) === 'asc') { + else if (strtolower($order) === 'asc') { $order = SearchParams::ORDER_ASC; } else if ($order !== null) { diff --git a/application/Espo/Core/Select/Applier/Appliers/PrimaryFilter.php b/application/Espo/Core/Select/Applier/Appliers/PrimaryFilter.php index a4303a4577..c659827ec5 100644 --- a/application/Espo/Core/Select/Applier/Appliers/PrimaryFilter.php +++ b/application/Espo/Core/Select/Applier/Appliers/PrimaryFilter.php @@ -29,6 +29,8 @@ namespace Espo\Core\Select\Applier\Appliers; +use Espo\Core\Select\OrmSelectBuilder; + use Espo\Core\{ Exceptions\Error, Select\SelectManager, @@ -44,10 +46,19 @@ class PrimaryFilter { protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var SelectManager + */ protected $selectManager; + /** + * @var FilterFactory + */ protected $primaryFilterFactory; public function __construct( @@ -73,7 +84,10 @@ class PrimaryFilter } // For backward compatibility. - if ($this->selectManager->hasPrimaryFilter($filterName)) { + if ( + $this->selectManager->hasPrimaryFilter($filterName) && + $queryBuilder instanceof OrmSelectBuilder + ) { $this->selectManager->applyPrimaryFilterToQueryBuilder($queryBuilder, $filterName); return; diff --git a/application/Espo/Core/Select/Applier/Appliers/Select.php b/application/Espo/Core/Select/Applier/Appliers/Select.php index 73a1ecef6e..18b7dd1987 100644 --- a/application/Espo/Core/Select/Applier/Appliers/Select.php +++ b/application/Espo/Core/Select/Applier/Appliers/Select.php @@ -57,10 +57,19 @@ class Select protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var FieldUtil + */ protected $fieldUtil; + /** + * @var MetadataProvider + */ protected $metadataProvider; public function __construct( diff --git a/application/Espo/Core/Select/Applier/Appliers/TextFilter.php b/application/Espo/Core/Select/Applier/Appliers/TextFilter.php index 3c7e63e2e8..7c09028581 100644 --- a/application/Espo/Core/Select/Applier/Appliers/TextFilter.php +++ b/application/Espo/Core/Select/Applier/Appliers/TextFilter.php @@ -61,12 +61,24 @@ class TextFilter private $entityType; + /** + * @var User + */ private $user; + /** + * @var MetadataProvider + */ private $metadataProvider; + /** + * @var FullTextSearchDataComposerFactory + */ private $fullTextSearchDataComposerFactory; + /** + * @var FilterFactory + */ private $filterFactory; public function __construct( diff --git a/application/Espo/Core/Select/Applier/Appliers/Where.php b/application/Espo/Core/Select/Applier/Appliers/Where.php index e53ff75f50..577238edf0 100644 --- a/application/Espo/Core/Select/Applier/Appliers/Where.php +++ b/application/Espo/Core/Select/Applier/Appliers/Where.php @@ -45,10 +45,19 @@ class Where { protected $entityType; + /** + * @var User + */ protected $user; + /** + * @var ConverterFactory + */ protected $converterFactory; + /** + * @var CheckerFactory + */ protected $checkerFactory; public function __construct( diff --git a/application/Espo/Core/Select/Text/FullTextSearchDataComposer.php b/application/Espo/Core/Select/Text/FullTextSearchDataComposer.php index 859221938c..1860740f9f 100644 --- a/application/Espo/Core/Select/Text/FullTextSearchDataComposer.php +++ b/application/Espo/Core/Select/Text/FullTextSearchDataComposer.php @@ -39,8 +39,14 @@ class FullTextSearchDataComposer protected $entityType; + /** + * @var Config + */ protected $config; + /** + * @var MetadataProvider + */ protected $metadataProvider; public function __construct(