From f39c15df3e89eb26bd7ecff2f9d592e320f7b3a3 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Mon, 11 Sep 2023 12:44:58 +0100 Subject: [PATCH] MDL-79310 forumreport_summary: report only on users who can be viewed. --- .../report/summary/classes/summary_table.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mod/forum/report/summary/classes/summary_table.php b/mod/forum/report/summary/classes/summary_table.php index 72c32a15c90..08d314bac0e 100644 --- a/mod/forum/report/summary/classes/summary_table.php +++ b/mod/forum/report/summary/classes/summary_table.php @@ -568,7 +568,22 @@ class summary_table extends table_sql { $privaterepliesparams['privatereplyfrom'] = $USER->id; } - list($enrolleduserssql, $enrolledusersparams) = get_enrolled_sql($this->get_context()); + if ($this->iscoursereport) { + $course = get_course($this->courseid); + $groupmode = groups_get_course_groupmode($course); + } else { + $cm = \cm_info::create($this->cms[0]); + $groupmode = $cm->effectivegroupmode; + } + + if ($groupmode == SEPARATEGROUPS && !has_capability('moodle/site:accessallgroups', $this->get_context())) { + $groups = groups_get_all_groups($this->courseid, $USER->id, 0, 'g.id'); + $groupids = array_column($groups, 'id'); + } else { + $groupids = []; + } + + [$enrolleduserssql, $enrolledusersparams] = get_enrolled_sql($this->get_context(), '', $groupids); $this->sql->params += $enrolledusersparams; $queryattachments = 'SELECT COUNT(fi.id) AS attcount, fi.itemid AS postid, fi.userid