From 188bbf75a5adfa4d45a0130f1ede6bc4f509f370 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Wed, 28 Aug 2019 11:03:12 +0200
Subject: [PATCH] :tractor: fix(session) Normalize session unsetting to un_set

No more global_un_set, global_delete or delete

issue #6024
---
 html/class_passwordRecovery.inc      |  2 +-
 html/index.php                       |  2 +-
 include/class_Language.inc           |  2 +-
 include/class_config.inc             |  2 +-
 include/class_session.inc            | 20 ++++++++------------
 plugins/config/tabs_configInLdap.inc |  2 +-
 setup/class_setup.inc                |  3 +--
 setup/class_setupStepConfig.inc      |  2 +-
 8 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc
index 1b8c818d6..2cae64e15 100644
--- a/html/class_passwordRecovery.inc
+++ b/html/class_passwordRecovery.inc
@@ -98,7 +98,7 @@ class standAlonePage {
       Language::init();
 
       if (session::is_set('plist')) {
-        session::global_un_set('plist');
+        session::un_set('plist');
       }
       $ui = new fake_userinfo();
       load_plist();
diff --git a/html/index.php b/html/index.php
index 16d9fdeb4..5a53e3d53 100644
--- a/html/index.php
+++ b/html/index.php
@@ -328,7 +328,7 @@ class Index {
 
     /* We need a fully loaded plist and config to test account expiration */
     if (!$plistReloaded) {
-      session::global_un_set('plist');
+      session::un_set('plist');
     }
     $plist = load_plist();
 
diff --git a/include/class_Language.inc b/include/class_Language.inc
index 69c8e7155..bd99cb243 100644
--- a/include/class_Language.inc
+++ b/include/class_Language.inc
@@ -72,7 +72,7 @@ class Language
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
           @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::get('lang'), 'Plist already loaded with language');
         }
-        session::global_un_set('plist');
+        session::un_set('plist');
         session::set('lang', $lang);
         load_plist();
       }
diff --git a/include/class_config.inc b/include/class_config.inc
index 921532a76..1585daca9 100644
--- a/include/class_config.inc
+++ b/include/class_config.inc
@@ -98,7 +98,7 @@ class config
     $tmp = stat(CACHE_DIR.'/'.CLASS_CACHE);
     if (session::is_set('class_location.inc:timestamp')) {
       if ($tmp['mtime'] != session::get('class_location.inc:timestamp')) {
-        session::global_un_set('plist');
+        session::un_set('plist');
       }
     }
     session::set('class_location.inc:timestamp', $tmp['mtime']);
diff --git a/include/class_session.inc b/include/class_session.inc
index ca01b13e2..58896ffdf 100644
--- a/include/class_session.inc
+++ b/include/class_session.inc
@@ -102,15 +102,11 @@ class session {
   }
 
   /*!
-   * \brief Delete a session
-   *
-   * \param string $name Name of the session to delete
+   * \brief Deprecated
    */
   public static function delete($name)
   {
-    if (isset($_SESSION[$name])) {
-      unset($_SESSION[$name]);
-    }
+    return static::un_set($name);
   }
 
   /*!
@@ -118,7 +114,7 @@ class session {
    */
   public static function global_delete($name)
   {
-    static::delete($name);
+    return static::un_set($name);
   }
 
   /*!
@@ -128,17 +124,17 @@ class session {
    */
   public static function un_set($name)
   {
-    return static::delete($name);
+    if (isset($_SESSION[$name])) {
+      unset($_SESSION[$name]);
+    }
   }
 
   /*!
-   * \brief Unset a session
-   *
-   * \param string $name Name of the session to delete
+   * \brief Deprecated
    */
   public static function global_un_set($name)
   {
-    return static::global_delete($name);
+    return static::un_set($name);
   }
 
   /*!
diff --git a/plugins/config/tabs_configInLdap.inc b/plugins/config/tabs_configInLdap.inc
index 6c2f00963..0df3024dc 100644
--- a/plugins/config/tabs_configInLdap.inc
+++ b/plugins/config/tabs_configInLdap.inc
@@ -28,7 +28,7 @@ class tabs_configInLdap extends simpleTabs
     /* check_and_reload */
     $config->check_and_reload(TRUE);
     /* reload plist as well as some plInfo might use $config or get_ou */
-    session::global_un_set('plist');
+    session::un_set('plist');
     load_plist();
     session::un_set('passwordMethod::get_available_methods');
 
diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index fa5ce2246..6d90d8a69 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -293,7 +293,7 @@ class setup
     $xml = $smarty->fetch(CONFIG_TEMPLATE_DIR.CONFIG_FILE);
     $config->parse_data($xml);
     $config->set_current($config->data['MAIN']['DEFAULT']);
-    session::global_un_set('plist');
+    session::un_set('plist');
     load_plist();
     $this->reBuildConfigStep();
   }
@@ -311,4 +311,3 @@ class setup
     }
   }
 }
-?>
diff --git a/setup/class_setupStepConfig.inc b/setup/class_setupStepConfig.inc
index d5b4dda35..a62e80c6e 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');
+      session::un_set('plist');
       load_plist();
       $this->is_completed = TRUE;
       $this->parent->reBuildConfigStep(TRUE);
-- 
GitLab