From 5d38d22c5028e08d6d75bae4907c93ecca3541c2 Mon Sep 17 00:00:00 2001 From: Molkobain Date: Wed, 6 Dec 2023 16:27:37 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B07023=20-=20Fix=20regression=20from=20the?= =?UTF-8?q?=20initial=20fix=20that=20throw=20exceptions=20even=20for=20ext?= =?UTF-8?q?.=20keys=20set=20programatically=20(eg.=20ComputeValues),=20whi?= =?UTF-8?q?ch=20we=20still=20want=20to=20allow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../portal/src/Form/ObjectFormManager.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 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 b2bb6b643..4d21f73eb 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 @@ -1150,9 +1150,6 @@ class ObjectFormManager extends FormManager // Writing object to DB try { - $this->oObject->CheckChangedExtKeysValues(function ($sClass, $sId) use ($oSecurityHelper): bool { - return $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $sId); - }); $this->oObject->DBWrite(); } catch (CoreCannotSaveObjectException $e) { throw new Exception($e->getHtmlMessage()); @@ -1371,6 +1368,12 @@ class ObjectFormManager extends FormManager } } } + /** @var SecurityHelper $oSecurityHelper */ + $oSecurityHelper = $this->oContainer->get('security_helper'); + // N°7023 - Note that we check for ext. key now as we want the check to be done on user inputs and NOT on ext. keys set programatically, so it must be done before the DoComputeValues + $this->oObject->CheckChangedExtKeysValues(function ($sClass, $sId) use ($oSecurityHelper): bool { + return $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $sId); + }); $this->oObject->DoComputeValues(); }