diff --git a/core/ormlinkset.class.inc.php b/core/ormlinkset.class.inc.php index 872b6e3bf..22c1b1f16 100644 --- a/core/ormlinkset.class.inc.php +++ b/core/ormlinkset.class.inc.php @@ -232,6 +232,7 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator { $aRet = array(); $this->oOriginalSet->Rewind(); + $this->oOriginalSet->OptimizeColumnLoad([$this->sClass => []]); $iRow = 0; while ($oObject = $this->oOriginalSet->Fetch()) { @@ -321,8 +322,6 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator */ public function Fetch() { - $this->LoadOriginalIds(); - $ret = $this->current(); if ($ret === false) { @@ -353,7 +352,7 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator if ($this->iCursor < $iPreservedCount) { $sId = key($this->aPreserved); - $oRet = MetaModel::GetObject($this->sClass, $sId); + $oRet = MetaModel::GetObject($this->sClass, $sId, true, true); } else { diff --git a/sources/Core/AttributeDefinition/AttributeLinkedSet.php b/sources/Core/AttributeDefinition/AttributeLinkedSet.php index 0d47460dc..f84fcef0f 100644 --- a/sources/Core/AttributeDefinition/AttributeLinkedSet.php +++ b/sources/Core/AttributeDefinition/AttributeLinkedSet.php @@ -9,6 +9,7 @@ namespace Combodo\iTop\Core\AttributeDefinition; use CMDBSource; use Combodo\iTop\Application\UI\Links\Set\BlockLinkSetDisplayAsProperty; use Combodo\iTop\Form\Field\LinkedSetField; +use Combodo\iTop\Portal\Helper\ScopeValidatorHelper; use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer; use Combodo\iTop\Service\Links\LinkSetModel; use CoreException; @@ -21,6 +22,7 @@ use Exception; use ExceptionLog; use IssueLog; use MetaModel; +use ModuleDesign; use ormLinkSet; use ValueSetObjects; @@ -154,6 +156,14 @@ class AttributeLinkedSet extends AttributeDefinition $oLinkSearch->AddCondition_PointingTo($oRemoteSearch, $this->GetExtKeyToRemote()); } } + //Add silo in portal context + if (defined('PORTAL_ID')) + { + $oModuleDesign = new ModuleDesign(PORTAL_ID); + $oScopeValidatorHelper = new ScopeValidatorHelper($oModuleDesign, PORTAL_ID); + $oScopeValidatorHelper->AddScopeToQuery($oLinkSearch, $oLinkSearch->GetClass()); + } + $oLinks = new DBObjectSet($oLinkSearch); $oLinkSet = new ormLinkSet($this->GetHostClass(), $this->GetCode(), $oLinks);