mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
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.
This commit is contained in:
parent
791fbc5687
commit
597cd7728e
1 changed files with 13 additions and 5 deletions
|
@ -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']);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue