From 27cebc524a3bf7444dbf419ce24ec4a87aea2e7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.bernigaud@opensides.be>
Date: Tue, 21 Jun 2016 06:45:43 +0200
Subject: [PATCH] Fixes #4890 Error in the setup at config step

---
 setup/class_setup.inc              | 21 ++++++++-------------
 setup/class_setupStep.inc          |  4 ++--
 setup/class_setupStep_Config.inc   |  4 ++--
 setup/class_setupStep_Language.inc |  4 ++--
 setup/class_setupStep_Ldap.inc     |  4 ++--
 setup/class_setupStep_Migrate.inc  |  4 ++--
 setup/class_setupStep_Welcome.inc  |  4 ++--
 7 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index 1496ccef5..ea42be777 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -50,13 +50,13 @@ class setup
   function __construct()
   {
     $this->o_steps = array(
-      new Step_Welcome(),
-      new Step_Language(),
-      new Step_Checks(),
-      new Step_Ldap(),
-      new Step_Config_before_init(),
-      new Step_Migrate(),
-      new Step_Finish(),
+      new Step_Welcome($this),
+      new Step_Language($this),
+      new Step_Checks($this),
+      new Step_Ldap($this),
+      new Step_Config_before_init($this),
+      new Step_Migrate($this),
+      new Step_Finish($this),
     );
 
     $this->i_steps = count($this->o_steps);
@@ -67,11 +67,6 @@ class setup
       header("Location: index.php");
       exit();
     }
-
-    foreach ($this->o_steps as &$step) {
-      $step->parent = &$this;
-    }
-    unset($step);
   }
 
   function execute()
@@ -318,7 +313,7 @@ class setup
 
   function reBuildConfigStep ($completed = NULL)
   {
-    $this->o_steps[$this->i_config] = new Step_Config($this->captured_values);
+    $this->o_steps[$this->i_config] = new Step_Config($this, $this->captured_values);
     if ($completed !== NULL) {
       $this->o_steps[$this->i_config]->is_completed = $completed;
     }
diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc
index 728563502..608abbf98 100644
--- a/setup/class_setupStep.inc
+++ b/setup/class_setupStep.inc
@@ -35,9 +35,9 @@ class setupStep extends simplePlugin
     return array();
   }
 
-  function __construct()
+  function __construct($parent)
   {
-    parent::__construct();
+    parent::__construct(NULL, NULL, $parent);
     $this->update_strings();
   }
 
diff --git a/setup/class_setupStep_Config.inc b/setup/class_setupStep_Config.inc
index d88495a5e..bc5881998 100644
--- a/setup/class_setupStep_Config.inc
+++ b/setup/class_setupStep_Config.inc
@@ -47,10 +47,10 @@ class Step_Config extends configInLdap
     return array();
   }
 
-  function __construct($cv)
+  function __construct($parent, $cv)
   {
     global $config;
-    parent::__construct(CONFIGRDN.$config->current['BASE']);
+    parent::__construct(CONFIGRDN.$config->current['BASE'], NULL, $parent, TRUE);
 
     $this->attributesInfo['miscellaneous']['class'] = array('invisible');
     $this->attributesInfo['debug']['class'] = array('invisible');
diff --git a/setup/class_setupStep_Language.inc b/setup/class_setupStep_Language.inc
index 5b45b66b4..cfd3e4cd7 100644
--- a/setup/class_setupStep_Language.inc
+++ b/setup/class_setupStep_Language.inc
@@ -47,9 +47,9 @@ class Step_Language extends setupStep
     );
   }
 
-  function __construct()
+  function __construct($parent)
   {
-    parent::__construct();
+    parent::__construct($parent);
     $this->lang = get_browser_language();
     $this->attributesAccess['lang_selected']->setSize(20);
   }
diff --git a/setup/class_setupStep_Ldap.inc b/setup/class_setupStep_Ldap.inc
index ceadacb1d..80c366da4 100644
--- a/setup/class_setupStep_Ldap.inc
+++ b/setup/class_setupStep_Ldap.inc
@@ -91,9 +91,9 @@ class Step_Ldap extends setupStep
     );
   }
 
-  function __construct()
+  function __construct($parent)
   {
-    parent::__construct();
+    parent::__construct($parent);
     $this->update_strings();
     $this->attributesAccess['base']->setSubmitForm(TRUE);
     $this->attributesAccess['admin']->setLinearRendering(TRUE);
diff --git a/setup/class_setupStep_Migrate.inc b/setup/class_setupStep_Migrate.inc
index bdfbc4c06..3847f7518 100644
--- a/setup/class_setupStep_Migrate.inc
+++ b/setup/class_setupStep_Migrate.inc
@@ -212,9 +212,9 @@ class Step_Migrate extends setupStep
     );
   }
 
-  function __construct()
+  function __construct($parent)
   {
-    parent::__construct();
+    parent::__construct($parent);
     $this->fill_defaultRoles();
   }
 
diff --git a/setup/class_setupStep_Welcome.inc b/setup/class_setupStep_Welcome.inc
index 2b07a7957..a2a2d2874 100644
--- a/setup/class_setupStep_Welcome.inc
+++ b/setup/class_setupStep_Welcome.inc
@@ -35,9 +35,9 @@ class Step_Welcome extends setupStep
     );
   }
 
-  function __construct()
+  function __construct($parent)
   {
-    parent::__construct();
+    parent::__construct($parent);
 
     $this->is_enabled     = TRUE;
     $this->is_active      = TRUE;
-- 
GitLab