From 8d7c64be66a31af581c949480035367f8117fceb Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 23 Aug 2019 15:36:10 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B02455=20-=20Wrong=20Request=20Template=20?= =?UTF-8?q?query=20validation=20Avoid=20blocking=20a=20form=20if=20a=20Req?= =?UTF-8?q?uestTemplate=20reference=20a=20bad=20attribute=20(e.g.=20:this-?= =?UTF-8?q?>id)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../portal/src/Form/ObjectFormManager.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php index 5a9fc45f90..4c565b5cf6 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php @@ -942,11 +942,20 @@ class ObjectFormManager extends FormManager { if (!$oForm->HasField($sDependencyFieldId)) { - $oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sDependencyFieldId); - $oField = $oAttDef->MakeFormField($this->oObject); - $oField->SetHidden(true); + try + { + $oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sDependencyFieldId); + $oField = $oAttDef->MakeFormField($this->oObject); + $oField->SetHidden(true); - $oForm->AddField($oField); + $oForm->AddField($oField); + } + catch (Exception $e) + { + // Avoid blocking a form if a RequestTemplate reference a bad attribute (e.g. :this->id) + IssueLog::Error('May be a bad OQL (referencing :this->id) in a RequestTemplate causes the following error'); + IssueLog::Error($e); + } } } }