diff --git a/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyAccount.php b/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyAccount.php index 7b8f304abb..6ed29320bf 100644 --- a/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyAccount.php +++ b/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyAccount.php @@ -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()) { diff --git a/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyContact.php b/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyContact.php index 955e7563ba..19fa2c7f8a 100644 --- a/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyContact.php +++ b/application/Espo/Core/Select/AccessControl/Filters/PortalOnlyContact.php @@ -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()) {