. /** * Logs the user out and sends them to the home page * * @package core * @subpackage auth * @copyright 1999 onwards Martin Dougiamas http://dougiamas.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('../config.php'); $PAGE->set_url('/login/logout.php'); $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); $sesskey = optional_param('sesskey', '__notpresent__', PARAM_RAW); // we want not null default to prevent required sesskey warning $login = optional_param('loginpage', 0, PARAM_BOOL); // can be overridden by auth plugins if ($login) { $redirect = get_login_url(); } else { $redirect = $CFG->wwwroot.'/'; } if (!isloggedin()) { // no confirmation, user has already logged out require_logout(); redirect($redirect); } else if (!confirm_sesskey($sesskey)) { $PAGE->set_title($SITE->fullname); $PAGE->set_heading($SITE->fullname); echo $OUTPUT->header(); echo $OUTPUT->confirm(get_string('logoutconfirm'), new moodle_url($PAGE->url, array('sesskey'=>sesskey())), $CFG->wwwroot.'/'); echo $OUTPUT->footer(); die; } $authsequence = get_enabled_auth_plugins(); // auths, in sequence foreach($authsequence as $authname) { $authplugin = get_auth_plugin($authname); $authplugin->logoutpage_hook(); } require_logout(); redirect($redirect);