Skip to content

Commit

Permalink
MDL-48019 mod_forum: Add sesskey checks when setting tracking prefs
Browse files Browse the repository at this point in the history
This also removes set_url() and changes require_course_login to
require_login as guests cannot set tracking.
  • Loading branch information
andrewnicols authored and danpoltawski committed Nov 5, 2014
1 parent 4289728 commit c812956
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion mod/forum/forum.js
Expand Up @@ -13,7 +13,7 @@ function forum_produce_tracking_link(forumid, ltext, ltitle) {
var elementid = "trackinglink";
var subs_link = document.getElementById(elementid);
if(subs_link){
subs_link.innerHTML = "<a title='"+ltitle+"' href='"+M.cfg.wwwroot+"/mod/forum/settracking.php?id="+forumid+"'>"+ltext+"<\/a>";
subs_link.innerHTML = "<a title='"+ltitle+"' href='"+M.cfg.wwwroot+"/mod/forum/settracking.php?id="+forumid+"&amp;sesskey="+M.cfg.sesskey+"'>"+ltext+"<\/a>";
}
}

Expand Down
5 changes: 4 additions & 1 deletion mod/forum/index.php
Expand Up @@ -238,7 +238,10 @@
} else if ($forum->trackingtype === FORUM_TRACKING_OFF || ($USER->trackforums == 0)) {
$trackedlink = '-';
} else {
$aurl = new moodle_url('/mod/forum/settracking.php', array('id'=>$forum->id));
$aurl = new moodle_url('/mod/forum/settracking.php', array(
'id' => $forum->id,
'sesskey' => sesskey(),
));
if (!isset($untracked[$forum->id])) {
$trackedlink = $OUTPUT->single_button($aurl, $stryes, 'post', array('title'=>$strnotrackforum));
} else {
Expand Down
10 changes: 8 additions & 2 deletions mod/forum/lib.php
Expand Up @@ -5128,7 +5128,10 @@ function forum_get_tracking_link($forum, $messages=array(), $fakelink=true) {
// use <noscript> to print button in case javascript is not enabled
$link .= '<noscript>';
}
$url = new moodle_url('/mod/forum/settracking.php', array('id'=>$forum->id));
$url = new moodle_url('/mod/forum/settracking.php', array(
'id' => $forum->id,
'sesskey' => sesskey(),
));
$link .= $OUTPUT->single_button($url, $linktext, 'get', array('title'=>$linktitle));

if ($fakelink) {
Expand Down Expand Up @@ -7882,7 +7885,10 @@ function forum_extend_settings_navigation(settings_navigation $settingsnav, navi
} else {
$linktext = get_string('trackforum', 'forum');
}
$url = new moodle_url('/mod/forum/settracking.php', array('id'=>$forumobject->id));
$url = new moodle_url('/mod/forum/settracking.php', array(
'id' => $forumobject->id,
'sesskey' => sesskey(),
));
$forumnode->add($linktext, $url, navigation_node::TYPE_SETTING);
}
}
Expand Down
8 changes: 2 additions & 6 deletions mod/forum/settracking.php
Expand Up @@ -29,11 +29,7 @@
$id = required_param('id',PARAM_INT); // The forum to subscribe or unsubscribe to
$returnpage = optional_param('returnpage', 'index.php', PARAM_FILE); // Page to return to.

$url = new moodle_url('/mod/forum/settracking.php', array('id'=>$id));
if ($returnpage !== 'index.php') {
$url->param('returnpage', $returnpage);
}
$PAGE->set_url($url);
require_sesskey();

if (! $forum = $DB->get_record("forum", array("id" => $id))) {
print_error('invalidforumid', 'forum');
Expand All @@ -47,7 +43,7 @@
print_error('invalidcoursemodule');
}

require_course_login($course, false, $cm);
require_login($course, false, $cm);

$returnto = forum_go_back_to($returnpage.'?id='.$course->id.'&f='.$forum->id);

Expand Down

0 comments on commit c812956

Please sign in to comment.