portal access filters support hasOne

This commit is contained in:
Yuri Kuznetsov
2024-11-07 11:16:29 +02:00
parent 53530941a7
commit 184ba90d43
2 changed files with 14 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ use Espo\ORM\Query\Part\Expression as Expr;
use Espo\ORM\Query\Part\Where\OrGroup;
use Espo\ORM\Query\Part\WhereClause;
use Espo\ORM\Query\SelectBuilder as QueryBuilder;
use Espo\ORM\Type\RelationType;
class PortalOnlyAccount implements Filter
{
@@ -62,6 +63,10 @@ class PortalOnlyAccount implements Filter
$accountIdList
)
);
if ($this->fieldHelper->getRelationDefs('account')->getType() === RelationType::HAS_ONE) {
$queryBuilder->leftJoin('account');
}
}
if ($this->fieldHelper->hasAccountsRelation()) {
@@ -103,6 +108,10 @@ class PortalOnlyAccount implements Filter
$orBuilder->add(
WhereClause::fromRaw(['contactId' => $contactId])
);
if ($this->fieldHelper->getRelationDefs('contact')->getType() === RelationType::HAS_ONE) {
$queryBuilder->leftJoin('contact');
}
}
if ($this->fieldHelper->hasContactsRelation()) {

View File

@@ -38,6 +38,7 @@ use Espo\ORM\Query\Part\Expression as Expr;
use Espo\ORM\Query\Part\Where\OrGroup;
use Espo\ORM\Query\Part\WhereClause;
use Espo\ORM\Query\SelectBuilder as QueryBuilder;
use Espo\ORM\Type\RelationType;
class PortalOnlyContact implements Filter
{
@@ -57,6 +58,10 @@ class PortalOnlyContact implements Filter
$orBuilder->add(
WhereClause::fromRaw(['contactId' => $contactId])
);
if ($this->fieldHelper->getRelationDefs('contact')->getType() === RelationType::HAS_ONE) {
$queryBuilder->leftJoin('contact');
}
}
if ($this->fieldHelper->hasContactsRelation()) {