return false;
}
+ if (has_capability('moodle/legacy:guest', $context, NULL, false)) { // User is a guest here!
+ return false;
+ }
+
if ($forum->type == "eachuser") {
return (!forum_user_has_posted_discussion($forum->id, $USER->id));
} else if ($currentgroup) {
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
if (isset($user)) {
- $canreply = has_capability('mod/forum:replypost', $context, false, $user->id);
+ $canreply = has_capability('mod/forum:replypost', $context, $user->id, false) &&
+ !has_capability('moodle/legacy:guest', $context, $user->id, false);
} else {
- $canreply = has_capability('mod/forum:replypost', $context, false);
+ $canreply = has_capability('mod/forum:replypost', $context, NULL, false) &&
+ !has_capability('moodle/legacy:guest', $context, NULL, false);
}
return $canreply;
$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
if (! forum_user_can_post_discussion($forum)) {
- error("Sorry, but you can not post a new discussion in this forum.");
+ if (has_capability('moodle/legacy:guest', $coursecontext, NULL, false)) { // User is a guest here!
+ $SESSION->wantsurl = $FULLME;
+ $SESSION->enrolcancel = $_SERVER['HTTP_REFERER'];
+ redirect($CFG->wwwroot.'/course/enrol.php?id='.$course->id, get_string('youneedtoenrol'));
+ } else {
+ print_error('nopostforum', 'forum');
+ }
}
if ($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) {
$info->name = fullname($user);
$info->forum = format_string($forum->name);
- if ( forum_is_subscribed($user->id, $forum->id) ) {
- if (forum_unsubscribe($user->id, $forum->id) ) {
+ if (forum_is_subscribed($user->id, $forum->id)) {
+ if (forum_unsubscribe($user->id, $forum->id)) {
add_to_log($course->id, "forum", "unsubscribe", "view.php?f=$forum->id", $forum->id, $cm->id);
redirect($returnto, get_string("nownotsubscribed", "forum", $info), 1);
} else {
error("Could not unsubscribe you from that forum", $_SERVER["HTTP_REFERER"]);
}
- } else { // subscribe
+ } else if (has_capability('moodle/legacy:guest', $context, $user->id, false)) { // Guests can not subscribe
+ error("Guests can not subscribe to forums", $_SERVER["HTTP_REFERER"]);
+
+ } else { // subscribe
if ($forum->forcesubscribe == FORUM_DISALLOWSUBSCRIBE &&
!has_capability('mod/forum:managesubscriptions', $context)) {
error(get_string('disallowsubscribe'),$_SERVER["HTTP_REFERER"]);
}
}
- if (!empty($USER->id)) {
+ if (!empty($USER->id) && !has_capability('moodle/legacy:guest', $context, NULL, false)) {
echo '<td align="right" class="subscription">';
$SESSION->fromdiscussion = "$FULLME";
if (forum_is_forcesubscribed($forum->id)) {