diff --git a/group/lib/legacylib.php b/group/lib/legacylib.php index 5bdaec48892..aaea991f55e 100644 --- a/group/lib/legacylib.php +++ b/group/lib/legacylib.php @@ -151,12 +151,13 @@ function mygroupid($courseid) { } /** - * This now returns either false or SEPARATEGROUPS. If you want VISIBLE GROUPS - * with legacy code, you'll need to upgrade. + * Returns the current group mode for a given course or activity module + * + * Could be false, SEPARATEGROUPS or VISIBLEGROUPS (<-- Martin) */ function groupmode($course, $cm=null) { - if (is_object($cm) && isset($cm->groupmode) && !isset($course->groupmodeforce)) { + if (isset($cm->groupmode) && empty($course->groupmodeforce)) { return $cm->groupmode; } return $course->groupmode; @@ -407,4 +408,4 @@ function groups_get_groups_users($userids, $courseid) { return $groups_users; } -?> \ No newline at end of file +?> diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index 7e838640d77..209c41735ee 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -169,7 +169,7 @@ $groupmode = groupmode($course, $cm); - if ($groupmode && $course->groupmodeforce && !has_capability('moodle/site:accessallgroups', $modcontext)) { + if ($groupmode && !has_capability('moodle/site:accessallgroups', $modcontext)) { // Groups must be kept separate //change this to ismember $mygroupid = mygroupid($course->id); //only useful if 0, otherwise it's an array now diff --git a/mod/forum/index.php b/mod/forum/index.php index 14bcff31476..1ed6565f9fc 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -164,7 +164,7 @@ $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id); $context = get_context_instance(CONTEXT_MODULE, $cm->id); - if (isset($forum->groupmode)) { + if (isset($forum->groupmode)) { $groupmode = groupmode($course, $forum); /// Can do this because forum->groupmode is defined } else { $groupmode = NOGROUPS; diff --git a/mod/forum/search.php b/mod/forum/search.php index cb2b46aa4a3..2778efb3747 100644 --- a/mod/forum/search.php +++ b/mod/forum/search.php @@ -399,15 +399,16 @@ function forum_menu_list($course) { foreach ($forums as $forum) { if ($cm = get_coursemodule_from_instance('forum', $forum->id, $course->id)) { + $context = get_context_instance(CONTEXT_MODULE, $cm->id); if (!isset($forum->visible)) { - $context = get_context_instance(CONTEXT_MODULE, $cm->id); if (!instance_is_visible("forum", $forum) && !has_capability('moodle/course:viewhiddenactivities', $context)) { continue; } } $groupmode = groupmode($course, $cm); // Groups are being used - if (($groupmode == SEPARATEGROUPS) and ($currentgroup === false)) { + if ($groupmode == SEPARATEGROUPS && ($currentgroup === false) && + !has_capability('moodle/site:accessallgroups', $context)) { continue; } } diff --git a/mod/forum/view.php b/mod/forum/view.php index a63266a2b6a..c68741e6ddf 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -82,7 +82,7 @@ $groupmode = groupmode($course, $cm); $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup); - if ($groupmode and ($currentgroup === false) and + if ($groupmode == SEPARATEGROUPS && ($currentgroup === false) && !has_capability('moodle/site:accessallgroups', $context)) { notice(get_string('notingroup', 'forum')); }