fixes
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -57,10 +57,19 @@ class Select
|
||||
|
||||
protected $entityType;
|
||||
|
||||
/**
|
||||
* @var User
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* @var FieldUtil
|
||||
*/
|
||||
protected $fieldUtil;
|
||||
|
||||
/**
|
||||
* @var MetadataProvider
|
||||
*/
|
||||
protected $metadataProvider;
|
||||
|
||||
public function __construct(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -45,10 +45,19 @@ class Where
|
||||
{
|
||||
protected $entityType;
|
||||
|
||||
/**
|
||||
* @var User
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* @var ConverterFactory
|
||||
*/
|
||||
protected $converterFactory;
|
||||
|
||||
/**
|
||||
* @var CheckerFactory
|
||||
*/
|
||||
protected $checkerFactory;
|
||||
|
||||
public function __construct(
|
||||
|
||||
@@ -39,8 +39,14 @@ class FullTextSearchDataComposer
|
||||
|
||||
protected $entityType;
|
||||
|
||||
/**
|
||||
* @var Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @var MetadataProvider
|
||||
*/
|
||||
protected $metadataProvider;
|
||||
|
||||
public function __construct(
|
||||
|
||||
Reference in New Issue
Block a user