]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15317, when forum is invisible, only users with 'mod/forum:managesubscriptions...
authordongsheng <dongsheng>
Mon, 21 Jul 2008 09:20:40 +0000 (09:20 +0000)
committerdongsheng <dongsheng>
Mon, 21 Jul 2008 09:20:40 +0000 (09:20 +0000)
mod/forum/index.php

index cb91e8b8cc33a4f4956910cd5648a394ef3aa145..6b4332c047af27580c9fbc3dbf27ddf6b7fb3449 100644 (file)
             $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);