From eedbf3d2669b805bb9e5d0cf0ef493baa45ad6aa Mon Sep 17 00:00:00 2001 From: Timmy38 <101416770+Timmy38@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:10:03 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B06617=20Fix=20issue=20when=20providing=20?= =?UTF-8?q?invalid=20dashboard=20layout=20class=20(#689)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit N°6617 Fix issue when providing invalid dashboard layout class --- application/dashboard.class.inc.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/application/dashboard.class.inc.php b/application/dashboard.class.inc.php index a11b335d2..c4989c83e 100644 --- a/application/dashboard.class.inc.php +++ b/application/dashboard.class.inc.php @@ -296,21 +296,21 @@ abstract class Dashboard public function FromParams($aParams) { $this->sLayoutClass = $aParams['layout_class']; + if (!is_subclass_of($this->sLayoutClass,DashboardLayout::class)) { + throw new InvalidParameterException('Invalid parameter layout_class "'.$aParams['layout_class'].'"'); + } $this->sTitle = $aParams['title']; $this->bAutoReload = $aParams['auto_reload'] == 'true'; $this->iAutoReloadSec = max(MetaModel::GetConfig()->Get('min_reload_interval'), (int) $aParams['auto_reload_sec']); - foreach($aParams['cells'] as $aCell) - { + foreach($aParams['cells'] as $aCell) { $aCellDashlets = array(); - foreach($aCell as $aDashletParams) - { + foreach($aCell as $aDashletParams) { $sDashletClass = $aDashletParams['dashlet_class']; $sId = $aDashletParams['dashlet_id']; /** @var \Dashlet $oNewDashlet */ $oNewDashlet = new $sDashletClass($this->oMetaModel, $sId); - if (isset($aDashletParams['dashlet_type'])) - { + if (isset($aDashletParams['dashlet_type'])) { $oNewDashlet->SetDashletType($aDashletParams['dashlet_type']); } $oForm = $oNewDashlet->GetForm();