MDL-31426 forum: don't show/allow any subscription to not enrolled users

This commit is contained in:
Eloy Lafuente (stronk7) 2012-01-30 23:20:03 +01:00
parent 216f6d8e9d
commit b688c44907

View file

@ -149,8 +149,13 @@ foreach ($modinfo->instances['forum'] as $forumid=>$cm) {
} }
} }
/// Do course wide subscribe/unsubscribe // Do course wide subscribe/unsubscribe if requested
if (!is_null($subscribe) and !isguestuser()) { if (!is_null($subscribe)) {
if (isguestuser() or !$can_subscribe) {
// there should not be any links leading to this place, just redirect
redirect(new moodle_url('/mod/forum/index.php', array('id' => $id)), get_string('subscribeenrolledonly', 'forum'));
}
// Can proceed now, the user is not guest and is enrolled
foreach ($modinfo->instances['forum'] as $forumid=>$cm) { foreach ($modinfo->instances['forum'] as $forumid=>$cm) {
$forum = $forums[$forumid]; $forum = $forums[$forumid];
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
@ -417,7 +422,8 @@ $PAGE->set_heading($course->fullname);
$PAGE->set_button($searchform); $PAGE->set_button($searchform);
echo $OUTPUT->header(); echo $OUTPUT->header();
if (!isguestuser() && isloggedin()) { // Show the subscribe all options only to non-guest, enrolled users
if (!isguestuser() && isloggedin() && $can_subscribe) {
echo $OUTPUT->box_start('subscription'); echo $OUTPUT->box_start('subscription');
echo html_writer::tag('div', echo html_writer::tag('div',
html_writer::link(new moodle_url('/mod/forum/index.php', array('id'=>$course->id, 'subscribe'=>1, 'sesskey'=>sesskey())), html_writer::link(new moodle_url('/mod/forum/index.php', array('id'=>$course->id, 'subscribe'=>1, 'sesskey'=>sesskey())),