From db365a121d74ba52b2c77a156e77660fffc306be Mon Sep 17 00:00:00 2001 From: skodak Date: Fri, 2 Mar 2007 17:05:25 +0000 Subject: [PATCH] sesskey added to logout.php MDL-8727 ; backported from HEAD --- enrol/authorize/localfuncs.php | 2 +- lang/en_utf8/moodle.php | 1 + lib/weblib.php | 2 +- login/logout.php | 10 ++++++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/enrol/authorize/localfuncs.php b/enrol/authorize/localfuncs.php index c454765a665..994d49327da 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 a4a2c16894f..0ddfb899042 100644 --- a/lang/en_utf8/moodle.php +++ b/lang/en_utf8/moodle.php @@ -778,6 +778,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 87fa2a9e398..78e32e1dea8 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -2651,7 +2651,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).' '. - " (framename}\" href=\"$CFG->wwwroot/login/logout.php\">".get_string('logout').')'; + " (framename}\" 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 df49f2a3280..d2fc3f29795 100644 --- a/login/logout.php +++ b/login/logout.php @@ -3,6 +3,16 @@ require_once("../config.php"); + + $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("$CFG->wwwroot/");