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 9200b566a4..5e8d99e16e 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 @@ -114,9 +114,8 @@ class ObjectFormManager extends FormManager * @throws \Exception * @throws \SecurityException if twig content is present and $bTrustContent is false * - * @since 2.7.6 3.0.0 N°4384 new $bTrustContent parameter */ - public static function FromJSON($sJson, $bTrustContent = false) + public static function FromJSON($sJson) { $aJson = static::DecodeFormManagerData($sJson); @@ -172,37 +171,6 @@ class ObjectFormManager extends FormManager return $oFormManager; } - /** - * @param string $sPostedFormManagerData received data from the browser - * @param array $aOriginalFormProperties data generated server side - * - * @return bool true if the data are identical - * - * @since 2.7.6 3.0.0 N°4384 Check formmanager_data - */ - public static function CanTrustFormLayoutContent($sPostedFormManagerData, $aOriginalFormProperties) - { - $aPostedFormManagerData = static::DecodeFormManagerData($sPostedFormManagerData); - $sPostedFormLayoutType = (isset($aPostedFormManagerData['formproperties']['layout']['type'])) ? $aPostedFormManagerData['formproperties']['layout']['type'] : ''; - - if ($sPostedFormLayoutType === 'xhtml') { - return true; - } - - // We need to parse the content so that autoclose tags are returned correctly (`
` => `
`) - $oHtmlDocument = new \DOMDocument(); - - $sPostedFormLayoutContent = (isset($aPostedFormManagerData['formproperties']['layout']['content'])) ? $aPostedFormManagerData['formproperties']['layout']['content'] : ''; - $oHtmlDocument->loadXML(''.$sPostedFormLayoutContent.''); - $sPostedFormLayoutRendered = $oHtmlDocument->saveHTML(); - - $sOriginalFormLayoutContent = (isset($aOriginalFormProperties['layout']['content'])) ? $aOriginalFormProperties['layout']['content'] : ''; - $oHtmlDocument->loadXML(''.$sOriginalFormLayoutContent.''); - $sOriginalFormLayoutContentRendered = $oHtmlDocument->saveHTML(); - - return ($sPostedFormLayoutRendered === $sOriginalFormLayoutContentRendered); - } - /** * * @return \Symfony\Component\DependencyInjection\ContainerInterface diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php index 1a5e1936fb..155ec56559 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php @@ -132,12 +132,10 @@ class ObjectFormHandlerHelper $bModal = ($oRequest->isXmlHttpRequest() && empty($sOperation)); // - Retrieve form properties - $aOriginalFormProperties = ApplicationHelper::GetLoadedFormFromClass($this->aCombodoPortalInstanceConf['forms'], $sObjectClass, $sMode); if ($aFormProperties === null) { - $aFormProperties = $aOriginalFormProperties; + $aFormProperties = ApplicationHelper::GetLoadedFormFromClass($this->aCombodoPortalInstanceConf['forms'], $sObjectClass, $sMode); } - // - Create and if (empty($sOperation)) { @@ -299,8 +297,7 @@ class ObjectFormHandlerHelper throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, 'Parameters formmanager_class and formmanager_data must be defined.'); } - $bTrustContent = $sFormManagerClass::CanTrustFormLayoutContent($sFormManagerData, $aOriginalFormProperties); - $oFormManager = $sFormManagerClass::FromJSON($sFormManagerData, $bTrustContent); + $oFormManager = $sFormManagerClass::FromJSON($sFormManagerData); $oFormManager->SetContainer($this->oContainer); // Applying action rules if present diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php index 363e565dfb..88ad564406 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php @@ -99,7 +99,8 @@ class AppExtension extends AbstractExtension return $sUrl; }); - //$filters[] = new TwigFilter('filter', 'twig_array_filter'); + //since 2.7.7 3.0.2 3.1.0 N°4867 "Twig content not allowed" error when use the extkey widget search icon in the user portal + //overwrite native twig filter : disable use of 'system' filter $filters[] = new Twig_SimpleFilter('filter', function ($array, $arrow) { if ($arrow == 'system'){ return json_encode($array); diff --git a/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml b/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml index 9f2c0b0f49..9fba410218 100755 --- a/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml +++ b/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml @@ -1733,7 +1733,6 @@ 500 - true