diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php
index 9d0e595d9..d871105da 100644
--- a/application/cmdbabstract.class.inc.php
+++ b/application/cmdbabstract.class.inc.php
@@ -744,7 +744,11 @@ HTML
$oPage->SetCurrentTab($sTabCode, $oAttDef->GetLabel().$sCount, $sTabDescription);
$aArgs = array('this' => $this);
- $bReadOnly = ($iFlags & (OPT_ATT_READONLY | OPT_ATT_SLAVE));
+
+ $sEditWhen = $oAttDef->GetEditWhen();
+ $bIsEditableBasedOnEditWhen = ($sEditWhen === LINKSET_EDITWHEN_ALWAYS || $sEditWhen === LINKSET_EDITWHEN_ON_HOST_EDITION);
+
+ $bReadOnly = ($iFlags & (OPT_ATT_READONLY | OPT_ATT_SLAVE)) || !$bIsEditableBasedOnEditWhen;
if ($bEditMode && (!$bReadOnly)) {
$sInputId = $this->m_iFormId.'_'.$sAttCode;
$sDisplayValue = ''; // not used
diff --git a/datamodels/2.x/itop-structure/datamodel.itop-structure.xml b/datamodels/2.x/itop-structure/datamodel.itop-structure.xml
index 6c8c2c4f2..f2b969da7 100644
--- a/datamodels/2.x/itop-structure/datamodel.itop-structure.xml
+++ b/datamodels/2.x/itop-structure/datamodel.itop-structure.xml
@@ -713,6 +713,7 @@
User
contactid
add_only
+ on_host_display
0
0
diff --git a/sources/Application/UI/Links/Indirect/BlockIndirectLinkSetEditTable.php b/sources/Application/UI/Links/Indirect/BlockIndirectLinkSetEditTable.php
index 36e6bc359..b15995c20 100644
--- a/sources/Application/UI/Links/Indirect/BlockIndirectLinkSetEditTable.php
+++ b/sources/Application/UI/Links/Indirect/BlockIndirectLinkSetEditTable.php
@@ -281,7 +281,7 @@ EOF
if ($bReadOnly) {
$aRow['form::checkbox'] = "";
- foreach ($this->m_aEditableFields as $sFieldCode) {
+ foreach ($this->oUILinksWidget->GetEditableFields() as $sFieldCode) {
$sDisplayValue = $linkObjOrId->GetEditValue($sFieldCode);
$aRow[$sFieldCode] = $sDisplayValue;
}
@@ -435,7 +435,7 @@ JS
$oAttDef = MetaModel::GetAttributeDef($this->oUILinksWidget->GetLinkedClass(), $sFieldCode);
if ($bReadOnlyField) {
- $sFieldForHtml = $sDisplayValue;
+ $sFieldForHtml = $oAttDef->GetAsHTML($sValue);
} else {
$sFieldForHtml = cmdbAbstractObject::GetFormElementForField(
$oP,
diff --git a/sources/Composer/iTopComposer.php b/sources/Composer/iTopComposer.php
index a24c72202..edee6c12f 100644
--- a/sources/Composer/iTopComposer.php
+++ b/sources/Composer/iTopComposer.php
@@ -140,6 +140,8 @@ class iTopComposer
$APPROOT_WITH_SLASHES.'lib/symfony/web-profiler-bundle/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/yaml/Tests',
+ $APPROOT_WITH_SLASHES.'lib/thenetworg/oauth2-azure/tests',
+
$APPROOT_WITH_SLASHES.'lib/twig/twig/src/Test',
$APPROOT_WITH_SLASHES.'lib/twig/twig/lib/Twig/Test',
$APPROOT_WITH_SLASHES.'lib/twig/twig/doc/tests',