From: dongsheng Date: Mon, 21 Jul 2008 09:20:40 +0000 (+0000) Subject: MDL-15317, when forum is invisible, only users with 'mod/forum:managesubscriptions... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=2c1363e6227ee029d7aaf12fac418c5a2fac3254;p=moodle.git MDL-15317, when forum is invisible, only users with 'mod/forum:managesubscriptions' capability can subscrib forum, merged from MOODLE_19_STABLE. --- diff --git a/mod/forum/index.php b/mod/forum/index.php index cb91e8b8cc..6b4332c047 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -116,14 +116,23 @@ $learningforums[$forum->id] = $forum; } } - + /// Do course wide subscribe/unsubscribe if (!is_null($subscribe) and !isguestuser() and !isguest()) { foreach ($modinfo->instances['forum'] as $forumid=>$cm) { $forum = $forums[$forumid]; + $cansub = false; + if (has_capability('mod/forum:viewdiscussion', $cm)) { + $cansub = true; + } + if ($cansub && $cm->visible == 0 && + !has_capability('mod/forum:managesubscriptions', $cm)) + { + $cansub = false; + } if (!forum_is_forcesubscribed($forum)) { $subscribed = forum_is_subscribed($USER->id, $forum); - if ($subscribe && !$subscribed) { + if ($subscribe && !$subscribed && $cansub) { forum_subscribe($USER->id, $forumid); } else if (!$subscribe && $subscribed) { forum_unsubscribe($USER->id, $forumid);