From 74294ea91d84d37c9d8cdb34b039ed84e795a2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Mon, 5 Nov 2018 12:36:42 +0100 Subject: [PATCH] :ambulance: fix(setup) Fix PHP errors in setup related to recent code changes issue #5919 --- html/setup.php | 5 +++-- include/class_exceptions.inc | 4 ++++ include/class_pluglist.inc | 3 +++ include/simpleplugin/class_simplePlugin.inc | 7 ++++++- setup/class_setup.inc | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/html/setup.php b/html/setup.php index b3765be91..568c76a0d 100644 --- a/html/setup.php +++ b/html/setup.php @@ -87,8 +87,9 @@ if (isset($_POST['lang_selected']) && $_POST['lang_selected'] != '') { Language::init($lang); -$smarty->assign("rtl", Language::isRTL($lang)); -$smarty->assign("must", '<span class="must">*</span>'); +$smarty->assign('lang', preg_replace('/_.*$/', '', $lang)); +$smarty->assign('rtl', Language::isRTL($lang)); +$smarty->assign('must', '<span class="must">*</span>'); /* Minimal config */ if (!session::global_is_set('config')) { diff --git a/include/class_exceptions.inc b/include/class_exceptions.inc index 16eeea5ad..1dc822e6c 100644 --- a/include/class_exceptions.inc +++ b/include/class_exceptions.inc @@ -71,6 +71,10 @@ class NoManagementClassException extends FusionDirectoryException { } +class UnknownClassException extends FusionDirectoryException +{ +} + class LDAPFailureException extends FusionDirectoryException { } diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc index 7e7d79dde..3218dcbfb 100644 --- a/include/class_pluglist.inc +++ b/include/class_pluglist.inc @@ -505,6 +505,9 @@ class pluglist { { $plist = session::global_get('plist'); if ($plist) { + if (!isset($plist->info[$cname])) { + throw new UnknownClassException($cname); + } return $plist->info[$cname]; } else { trigger_error('plist not loaded yet'); diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc index c7963b7b8..dc1c295db 100644 --- a/include/simpleplugin/class_simplePlugin.inc +++ b/include/simpleplugin/class_simplePlugin.inc @@ -155,7 +155,12 @@ class simplePlugin $this->parent = $parent; $this->mainTab = $mainTab; - $plInfo = pluglist::pluginInfos(get_class($this)); + try { + $plInfo = pluglist::pluginInfos(get_class($this)); + } catch (UnknownClassException $e) { + /* May happen in special cases like setup */ + $plInfo = array(); + } if (empty($this->objectclasses) && isset($plInfo['plObjectClass'])) { $this->objectclasses = $plInfo['plObjectClass']; diff --git a/setup/class_setup.inc b/setup/class_setup.inc index 9d50e549d..d316c02b7 100644 --- a/setup/class_setup.inc +++ b/setup/class_setup.inc @@ -64,7 +64,7 @@ class setup * but only do this, if user is allowed to use the setup. * If setupsetupStepWelcome is_completed, we are allowed to view those infos- */ - if (isset($_GET['info']) && preg_match("/setupStepWelcome/i", get_class($this->o_steps[1])) && $this->o_steps[1]->is_completed()) { + if (isset($_GET['info']) && preg_match('/setupStepWelcome/i', get_class($this->o_steps[0])) && $this->o_steps[0]->is_completed()) { phpinfo(); exit(); } -- GitLab