--- C:/Users/jmlsteele/AppData/Local/Temp/observer.php-revBASE.svn001.tmp.php Mon Nov 18 14:50:44 2013 +++ S:/SVN/moodle/2.6/trunk/moodle/mod/forum/classes/observer.php Mon Oct 27 11:49:44 2014 @@ -72,7 +72,7 @@ require_once($CFG->dirroot . '/mod/forum/lib.php'); $userid = $event->relateduserid; - $sql = "SELECT f.id, cm.id AS cmid + $sql = "SELECT f.id, cm.id AS cmid, cm.groupingid FROM {forum} f JOIN {course_modules} cm ON (cm.instance = f.id) JOIN {modules} m ON (m.id = cm.module) @@ -85,6 +85,13 @@ $forums = $DB->get_records_sql($sql, $params); foreach ($forums as $forum) { + // If the forum uses groupings and the user isn't part of the grouping don't subscribe. + if ($forum->groupingid != 0) { + $members = groups_get_grouping_members($forum->groupingid, 'u.id'); + if (!array_key_exists($userid, $members)) { + continue; + } + } // If user doesn't have allowforcesubscribe capability then don't subscribe. if (has_capability('mod/forum:allowforcesubscribe', context_module::instance($forum->cmid), $userid)) { forum_subscribe($userid, $forum->id);