diff --git a/enrol/authorize/localfuncs.php b/enrol/authorize/localfuncs.php index 7929f598803..a10469dd625 100644 --- a/enrol/authorize/localfuncs.php +++ b/enrol/authorize/localfuncs.php @@ -49,7 +49,7 @@ function prevent_double_paid($course) } if (isset($SESSION->ccpaid)) { unset($SESSION->ccpaid); - redirect($CFG->wwwroot . '/login/logout.php'); + redirect($CFG->wwwroot . '/login/logout.php?sesskey='.sesskey()); return; } } diff --git a/lang/en_utf8/moodle.php b/lang/en_utf8/moodle.php index 916c8444d02..09c8e3e6bb2 100644 --- a/lang/en_utf8/moodle.php +++ b/lang/en_utf8/moodle.php @@ -824,6 +824,7 @@ $string['loginstepsnone'] = '
Hi!
$string['loginto'] = 'Login to $a'; $string['loginusing'] = 'Login here using your username and password'; $string['logout'] = 'Logout'; +$string['logoutconfirm'] = 'Do you really want to logout?'; $string['logs'] = 'Logs'; $string['logtoomanycourses'] = '[ url\">more ]'; $string['logtoomanyusers'] = '[ url\">more ]'; diff --git a/lib/weblib.php b/lib/weblib.php index 0a577e52c4e..95b78d978db 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -2748,7 +2748,7 @@ function user_login_string($course=NULL, $user=NULL) { href=\"$CFG->wwwroot/course/view.php?id=$course->id&switchrole=0&sesskey=".sesskey()."\">".get_string('switchrolereturn').')'; } else { $loggedinas = $realuserinfo.get_string('loggedinas', 'moodle', $username).' '. - " (frametarget href=\"$CFG->wwwroot/login/logout.php\">".get_string('logout').')'; + " (frametarget href=\"$CFG->wwwroot/login/logout.php?sesskey=".sesskey()."\">".get_string('logout').')'; } } else { $loggedinas = get_string('loggedinnot', 'moodle'). diff --git a/login/logout.php b/login/logout.php index 47149632092..e4e90d2f12a 100644 --- a/login/logout.php +++ b/login/logout.php @@ -10,6 +10,15 @@ $wwwroot = $CFG->wwwroot; } + $sesskey = optional_param('sesskey', '__notpresent__', PARAM_RAW); // we want not null default to prevent required sesskey warning + + if (!confirm_sesskey($sesskey)) { + print_header($SITE->fullname, $SITE->fullname, 'home'); + notice_yesno(get_string('logoutconfirm'), 'logout.php', $CFG->wwwroot.'/', array('sesskey'=>sesskey()), null, 'post', 'get'); + print_footer(); + die; + } + require_logout(); redirect("$wwwroot/");