diff --git a/group/classes/privacy/provider.php b/group/classes/privacy/provider.php index 33f172fac5e53..334b74f62d0ab 100644 --- a/group/classes/privacy/provider.php +++ b/group/classes/privacy/provider.php @@ -267,13 +267,14 @@ public static function delete_groups_for_users(approved_userlist $userlist, stri $context = $userlist->get_context(); $userids = $userlist->get_userids(); + if (!$context instanceof \context_course) { + return; + } + list($usersql, $userparams) = $DB->get_in_or_equal($userids, SQL_PARAMS_NAMED); - $groupselect = "SELECT g.id - FROM {groups} g - JOIN {context} ctx ON g.courseid = ctx.instanceid AND ctx.contextlevel = :contextcourse - WHERE ctx.id = :contextid"; - $groupparams = ['contextid' => $context->id, 'contextcourse' => CONTEXT_COURSE]; + $groupselect = "SELECT id FROM {groups} WHERE courseid = :courseid"; + $groupparams = ['courseid' => $context->instanceid]; $select = "component = :component AND userid {$usersql} AND groupid IN ({$groupselect})"; $params = ['component' => $component] + $groupparams + $userparams;