mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-25 21:34:12 +01:00
Compare commits
2 Commits
develop
...
feature/52
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80cdfc1a34 | ||
|
|
cf1eb4da61 |
@@ -52,6 +52,8 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
*/
|
||||
protected $bHasDelta = false;
|
||||
|
||||
protected $bAllowAllData = false;
|
||||
|
||||
/**
|
||||
* Object from the original set, minus the removed objects
|
||||
* @var DBObject[] array of iObjectId => DBObject
|
||||
@@ -118,6 +120,11 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
return clone $this->oOriginalSet->GetFilter();
|
||||
}
|
||||
|
||||
public function AllowAllData(): void
|
||||
{
|
||||
$this->bAllowAllData = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify the subset of attributes to load (for each class of objects) before performing the SQL query for retrieving the rows from the DB
|
||||
*
|
||||
@@ -309,6 +316,7 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the current element
|
||||
*
|
||||
@@ -329,7 +337,7 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
$iPreservedCount = count($this->aPreserved);
|
||||
if ($this->iCursor < $iPreservedCount) {
|
||||
$sId = key($this->aPreserved);
|
||||
$oRet = MetaModel::GetObject($this->sClass, $sId);
|
||||
$oRet = MetaModel::GetObject($this->sClass, $sId, true, $this->bAllowAllData);
|
||||
} else {
|
||||
$iModifiedCount = count($this->aModified);
|
||||
if ($this->iCursor < $iPreservedCount + $iModifiedCount) {
|
||||
|
||||
@@ -365,6 +365,9 @@ class ObjectFormManager extends FormManager
|
||||
}
|
||||
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sAttCode);
|
||||
if ($oAttDef instanceof \AttributeLinkedSet && array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('ignore_scopes', $this->aExtraData[$sAttCode])) {
|
||||
$oAttDef->AllowAllData();
|
||||
}
|
||||
|
||||
/** @var Field $oField */
|
||||
$oField = null;
|
||||
@@ -572,7 +575,11 @@ class ObjectFormManager extends FormManager
|
||||
$aLimitedAccessItemIDs = [];
|
||||
|
||||
/** @var \ormLinkSet $oFieldOriginalSet */
|
||||
|
||||
$oFieldOriginalSet = $oField->GetCurrentValue();
|
||||
if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('ignore_scopes', $this->aExtraData[$sAttCode])) {
|
||||
$oFieldOriginalSet->AllowAllData();
|
||||
}
|
||||
foreach ($oFieldOriginalSet as $oLink) {
|
||||
if ($oField->IsIndirect()) {
|
||||
$iRemoteKey = $oLink->Get($oAttDef->GetExtKeyToRemote());
|
||||
|
||||
@@ -32,6 +32,7 @@ use ValueSetObjects;
|
||||
*/
|
||||
class AttributeLinkedSet extends AttributeDefinition
|
||||
{
|
||||
public $bAllowAllData = false;
|
||||
/**
|
||||
* Useless constructor, but if not present PHP 7.4.0/7.4.1 is crashing :( (N°2329)
|
||||
*
|
||||
@@ -50,6 +51,11 @@ class AttributeLinkedSet extends AttributeDefinition
|
||||
$this->aCSSClasses[] = 'attribute-set';
|
||||
}
|
||||
|
||||
public function AllowAllData()
|
||||
{
|
||||
$this->bAllowAllData = true;
|
||||
}
|
||||
|
||||
public static function ListExpectedParams()
|
||||
{
|
||||
return array_merge(
|
||||
@@ -143,6 +149,9 @@ class AttributeLinkedSet extends AttributeDefinition
|
||||
}
|
||||
|
||||
$oLinkSearch = new DBObjectSearch($sLinkClass);
|
||||
if ($this->bAllowAllData) {
|
||||
$oLinkSearch->AllowAllData(true);
|
||||
}
|
||||
$oLinkSearch->AddCondition_PointingTo($oMyselfSearch, $sExtKeyToMe);
|
||||
if ($this->IsIndirect()) {
|
||||
// Join the remote class so that the archive flag will be taken into account
|
||||
|
||||
Reference in New Issue
Block a user