diff --git a/core/ormlinkset.class.inc.php b/core/ormlinkset.class.inc.php index 872b6e3bfa..22c1b1f163 100644 --- a/core/ormlinkset.class.inc.php +++ b/core/ormlinkset.class.inc.php @@ -232,6 +232,7 @@ protected function GetArrayOfIndex() { $aRet = array(); $this->oOriginalSet->Rewind(); + $this->oOriginalSet->OptimizeColumnLoad([$this->sClass => []]); $iRow = 0; while ($oObject = $this->oOriginalSet->Fetch()) { @@ -321,8 +322,6 @@ public function Seek($iPosition): void */ public function Fetch() { - $this->LoadOriginalIds(); - $ret = $this->current(); if ($ret === false) { @@ -353,7 +352,7 @@ public function current() 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 0d47460dc8..f84fcef0f8 100644 --- a/sources/Core/AttributeDefinition/AttributeLinkedSet.php +++ b/sources/Core/AttributeDefinition/AttributeLinkedSet.php @@ -9,6 +9,7 @@ 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 ExceptionLog; use IssueLog; use MetaModel; +use ModuleDesign; use ormLinkSet; use ValueSetObjects; @@ -154,6 +156,14 @@ public function GetDefaultValue(DBObject $oHostObject = null) $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);