Better handling for guest in forums MDL-7125

This commit is contained in:
moodler
2006-10-23 04:53:56 +00:00
parent 0ff7b38264
commit 1de8317f92
4 changed files with 22 additions and 7 deletions
+8 -2
View File
@@ -2904,6 +2904,10 @@ function forum_user_can_post_discussion($forum, $currentgroup=false, $groupmode=
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) {
@@ -2935,9 +2939,11 @@ function forum_user_can_post($forum, $user=NULL) {
$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;
+7 -1
View File
@@ -335,7 +335,13 @@
$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)) {
+6 -3
View File
@@ -86,15 +86,18 @@
$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"]);
+1 -1
View File
@@ -153,7 +153,7 @@
}
}
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)) {