MDL-61351 auth_shibboleth: removed redundant session handler class check
authorTim Schroeder <t.schroeder@itc.rwth-aachen.de>
Mon, 16 Jul 2018 15:20:36 +0000 (17:20 +0200)
committerMark Nelson <markn@moodle.com>
Tue, 17 Jul 2018 08:45:20 +0000 (16:45 +0800)
auth/shibboleth/logout.php

index c9fa33d..f514d4e 100644 (file)
@@ -127,27 +127,14 @@ WSDL;
  * @return SoapFault or void if everything was fine
  */
 function LogoutNotification($spsessionid) {
-    global $CFG;
-
-    // Delete session of user using $spsessionid.
-    // The setting $CFG->session_handler_class may not be set. But if it is,
-    // it should override $CFG->dbsessions.
-    if (!empty($CFG->session_handler_class)) {
-        $sessionclass = $CFG->session_handler_class;
-        if (preg_match('/database/i', $sessionclass) === 1) {
-            return \auth_shibboleth\helper::logout_db_session($spsessionid);
-        } else if (preg_match('/file/i', $sessionclass) === 1) {
+    $sessionclass = \core\session\manager::get_handler_class();
+    switch ($sessionclass) {
+        case '\core\session\file':
             return \auth_shibboleth\helper::logout_file_session($spsessionid);
-        } else {
-            throw new moodle_exception("Shibboleth logout not implemented for '$sessionclass'");
-        }
-    } else {
-        // Session handler class is not specified, check dbsessions instead.
-        if (!empty($CFG->dbsessions)) {
+        case '\core\session\database':
             return \auth_shibboleth\helper::logout_db_session($spsessionid);
-        }
-        // Assume file sessions if dbsessions isn't used.
-        return \auth_shibboleth\helper::logout_file_session($spsessionid);
+        default:
+            throw new moodle_exception("Shibboleth logout not implemented for '$sessionclass'");
     }
     // If no SoapFault was thrown, the function will return OK as the SP assumes.
 }