From f8bd70303eac67993493c9de5518b9c7b6218feb Mon Sep 17 00:00:00 2001 From: donal72 Date: Sun, 29 Apr 2007 15:01:47 +0000 Subject: [PATCH] MDL-8973 : Update to the require_logout function to ensure that the user's auth plugin is the first (& only) one to have its prelogout_hook invoked. --- lib/moodlelib.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 72a5f09393..57892eb1bb 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -1828,11 +1828,11 @@ function require_logout() { if (isloggedin()) { add_to_log(SITEID, "user", "logout", "view.php?id=$USER->id&course=".SITEID, $USER->id, 0, $USER->id); - $authsequence = get_enabled_auth_plugins(); // auths, in sequence - foreach($authsequence as $authname) { - $authplugin = get_auth_plugin($authname); - $authplugin->prelogout_hook(); + if (!isset($USER->auth) && empty($USER->auth)) { + $USER->auth = get_field('user', 'auth', 'id', $USER->id); } + $authplugin = get_auth_plugin($USER->auth); + $authplugin->prelogout_hook(); } if (ini_get_bool("register_globals") and check_php_version("4.3.0")) { @@ -1841,7 +1841,15 @@ function require_logout() { session_unregister("SESSION"); } - setcookie('MoodleSessionTest'.$CFG->sessioncookie, '', time() - 3600, $CFG->sessioncookiepath); + // Initialize variable to pass-by-reference to headers_sent(&$file, &$line) + $file = $line = null; + if (headers_sent($file, $line)) { + error_log('MoodleSessionTest cookie could not be set in moodlelib.php:'.__LINE__); + error_log('Headers were already sent in file: '.$file.' on line '.$line); + } else { + setcookie('MoodleSessionTest'.$CFG->sessioncookie, '', time() - 3600, $CFG->sessioncookiepath); + } + unset($_SESSION['USER']); unset($_SESSION['SESSION']); -- 2.39.5