From 8b6c056ebd92918052c41d79f08fab7774ad8f55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Thu, 26 Jul 2018 11:57:53 +0200
Subject: [PATCH] :ambulance: fix(core) Moved load_plist to pluglist class as a
 static method

issue #5854
---
 html/main.php                        |  2 +-
 include/class_Language.inc           |  2 +-
 include/class_pluglist.inc           | 21 +++++++++++++++++++++
 include/class_standAlonePage.inc     |  2 +-
 include/functions.inc                | 21 ---------------------
 include/login/class_LoginMethod.inc  |  2 +-
 plugins/config/tabs_configInLdap.inc |  2 +-
 setup/class_setup.inc                |  2 +-
 setup/class_setupStepConfig.inc      |  2 +-
 9 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/html/main.php b/html/main.php
index dc5077ae1..cd0981240 100644
--- a/html/main.php
+++ b/html/main.php
@@ -105,7 +105,7 @@ if (!session::global_is_set('CurrentMainBase')) {
 Language::init();
 
 /* Prepare plugin list */
-$plist = load_plist();
+pluglist::load();
 
 /* Check for register globals */
 if (isset($global_check) && $config->get_cfg_value("forceglobals") == "TRUE") {
diff --git a/include/class_Language.inc b/include/class_Language.inc
index 5790aa99b..d98faf2a9 100644
--- a/include/class_Language.inc
+++ b/include/class_Language.inc
@@ -74,7 +74,7 @@ class Language
         }
         session::global_un_set('plist');
         session::global_set('lang', $lang);
-        load_plist();
+        pluglist::load();
       }
     }
 
diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc
index 9bda4a658..a86840ba4 100644
--- a/include/class_pluglist.inc
+++ b/include/class_pluglist.inc
@@ -510,5 +510,26 @@ class pluglist {
       trigger_error('plist not loaded yet');
     }
   }
+
+  /*!
+   * \brief Loads plist and load it in config object
+   */
+  static function load($ldap_available = TRUE)
+  {
+    global $config, $plist;
+    if (!session::global_is_set('plist')) {
+      /* Initially load all classes */
+      load_all_classes();
+
+      $plist = new pluglist();
+      session::global_set('plist', $plist);
+      $config->loadPlist($plist);
+      if ($ldap_available) {
+        $config->get_departments();
+        $config->make_idepartments();
+      }
+    }
+    return session::global_get('plist');
+  }
 }
 ?>
diff --git a/include/class_standAlonePage.inc b/include/class_standAlonePage.inc
index f1b9f1a5c..ad7ddc7ef 100644
--- a/include/class_standAlonePage.inc
+++ b/include/class_standAlonePage.inc
@@ -98,7 +98,7 @@ class standAlonePage {
         session::global_un_set('plist');
       }
       $ui = new userinfoNoAuth(get_class($this));
-      load_plist();
+      pluglist::load();
 
       $ssl = $this->checkForSSL();
     }
diff --git a/include/functions.inc b/include/functions.inc
index 1baaf6629..b40f45afe 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -154,27 +154,6 @@ function plugin_available($plugin)
   }
 }
 
-/*!
- * \brief Loads plist and load it in config object
- */
-function load_plist ($ldap_available = TRUE)
-{
-  global $config, $plist;
-  if (!session::global_is_set('plist')) {
-    /* Initially load all classes */
-    load_all_classes();
-
-    $plist = new pluglist();
-    session::global_set('plist', $plist);
-    $config->loadPlist($plist);
-    if ($ldap_available) {
-      $config->get_departments();
-      $config->make_idepartments();
-    }
-  }
-  return session::global_get('plist');
-}
-
 /*!
  * \brief Debug level action
  *
diff --git a/include/login/class_LoginMethod.inc b/include/login/class_LoginMethod.inc
index 58944e12b..cb3d2df21 100644
--- a/include/login/class_LoginMethod.inc
+++ b/include/login/class_LoginMethod.inc
@@ -126,7 +126,7 @@ class LoginMethod
     if (!$plistReloaded) {
       session::global_un_set('plist');
     }
-    $plist = load_plist();
+    pluglist::load();
 
     /* Check that newly installed plugins have their configuration in the LDAP (will reload plist if needed) */
     $config->checkLdapConfig();
diff --git a/plugins/config/tabs_configInLdap.inc b/plugins/config/tabs_configInLdap.inc
index 2d39f26c4..19fdffc54 100644
--- a/plugins/config/tabs_configInLdap.inc
+++ b/plugins/config/tabs_configInLdap.inc
@@ -28,7 +28,7 @@ class tabs_configInLdap extends simpleTabs_noSpecial
     $config->check_and_reload(TRUE);
     /* reload plist as well as some plInfo might use $config or get_ou */
     session::global_un_set('plist');
-    load_plist();
+    pluglist::load();
     session::un_set('passwordMethod::get_available_methods');
 
     return $errors;
diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index 57aa7c707..9d50e549d 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -276,7 +276,7 @@ class setup
     $config->parse_data($xml);
     $config->set_current($config->data['MAIN']['DEFAULT']);
     session::global_un_set('plist');
-    load_plist();
+    pluglist::load();
     $this->reBuildConfigStep();
   }
 
diff --git a/setup/class_setupStepConfig.inc b/setup/class_setupStepConfig.inc
index 00f9d963a..7a012d5e9 100644
--- a/setup/class_setupStepConfig.inc
+++ b/setup/class_setupStepConfig.inc
@@ -119,7 +119,7 @@ class setupStepConfig extends configInLdap
       /* Reload config from LDAP */
       $config->set_current($config->current['NAME']);
       session::global_un_set('plist');
-      load_plist();
+      pluglist::load();
       $this->is_completed = TRUE;
       $this->parent->reBuildConfigStep(TRUE);
     }
-- 
GitLab