From 52023004afdc95e23dea3f41f02d1cb13fad6640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.chilliet@fusiondirectory.org> Date: Tue, 1 Sep 2020 12:14:47 +0200 Subject: [PATCH] :ambulance: fix(core) Fix obvious crashes from dialog refactor issue #6072 --- include/management/class_templateDialog.inc | 5 +++++ include/simpleplugin/class_multiPlugin.inc | 2 +- include/simpleplugin/class_simplePlugin.inc | 5 ++++- include/simpleplugin/class_simpleTabs.inc | 2 +- setup/class_setupStepConfig.inc | 7 ++++--- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/management/class_templateDialog.inc b/include/management/class_templateDialog.inc index 9bfc503c5..b3b6221a4 100644 --- a/include/management/class_templateDialog.inc +++ b/include/management/class_templateDialog.inc @@ -94,6 +94,11 @@ class templateDialog implements FusionDirectoryDialog } } + public function update(): bool + { + return TRUE; + } + function setNextTarget ($target) { $this->target = $target; diff --git a/include/simpleplugin/class_multiPlugin.inc b/include/simpleplugin/class_multiPlugin.inc index a6cfbcb9c..42587b1f2 100644 --- a/include/simpleplugin/class_multiPlugin.inc +++ b/include/simpleplugin/class_multiPlugin.inc @@ -97,7 +97,7 @@ class multiPlugin extends simplePlugin } } - public function update (): boolean + public function update (): bool { foreach ($this->plugin as $plug) { $plug->update(); diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc index e72552b7e..99395cbca 100644 --- a/include/simpleplugin/class_simplePlugin.inc +++ b/include/simpleplugin/class_simplePlugin.inc @@ -27,7 +27,7 @@ /*! \brief This class is made for easy plugin creation for editing LDAP attributes * */ -class simplePlugin implements SimpleTab, FusionDirectoryDialog +class simplePlugin implements SimpleTab { /*! \brief This attribute store all information about attributes */ public $attributesInfo; @@ -1171,6 +1171,9 @@ class simplePlugin implements SimpleTab, FusionDirectoryDialog $this->is_account = TRUE; } } + if (is_object($this->dialog)) { + $this->dialog->readPost(); + } if (isset($_POST[get_class($this).'_posted'])) { // If our form has been posted // A first pass that loads the post values diff --git a/include/simpleplugin/class_simpleTabs.inc b/include/simpleplugin/class_simpleTabs.inc index d6330eb0d..d005359bf 100644 --- a/include/simpleplugin/class_simpleTabs.inc +++ b/include/simpleplugin/class_simpleTabs.inc @@ -237,7 +237,7 @@ class simpleTabs implements FusionDirectoryDialog public function update (): bool { - if ($this->last != $this->current) { + if (($this->last != $this->current) && ($this->last != '')) { $this->by_object[$this->last]->update(); } diff --git a/setup/class_setupStepConfig.inc b/setup/class_setupStepConfig.inc index db44f2020..9a0afa623 100644 --- a/setup/class_setupStepConfig.inc +++ b/setup/class_setupStepConfig.inc @@ -94,7 +94,7 @@ class setupStepConfig extends configInLdap return $tmp; } - function update () + function update (): bool { global $config, $plist; parent::update(); @@ -108,13 +108,13 @@ class setupStepConfig extends configInLdap $ldap->create_missing_trees($config->current['BASE'], FALSE); } catch (FusionDirectoryError $error) { $error->display(); - return; + return TRUE; } /* Save in LDAP */ $errors = $this->save(); if (!empty($errors)) { msg_dialog::displayChecks($errors); - return; + return TRUE; } /* Insert default config values, even for installed plugin */ session::un_set('plist'); @@ -127,6 +127,7 @@ class setupStepConfig extends configInLdap $this->is_completed = TRUE; $this->parent->reBuildConfigStep(TRUE); } + return TRUE; } function is_active () -- GitLab