Skip to content

Commit a484481

Browse files
committed
Search users group add capability check
1 parent 7c74844 commit a484481

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

classes/local/course_enrolment_manager.php

+9
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public function search_users_with_groups(string $search = '', bool $searchanywhe
4141
array $groups = []) {
4242
global $DB;
4343

44+
$context = $this->context;
45+
4446
[$ufields, $joins, $params, $wherecondition] = $this->get_basic_search_conditions($search, $searchanywhere);
4547

4648
$fields = 'SELECT ' . $ufields;
@@ -53,10 +55,17 @@ public function search_users_with_groups(string $search = '', bool $searchanywhe
5355
JOIN {enrol} e ON ue.enrolid = e.id
5456
JOIN ({groups_members} gm JOIN {groups} g ON (g.id = gm.groupid))
5557
ON (u.id = gm.userid AND g.courseid = e.courseid)
58+
JOIN {role_assignments} ra ON ra.userid = u.id
5659
WHERE $wherecondition
5760
AND e.courseid = :courseid
61+
AND u.suspended = 0
62+
AND 1 = (SELECT permission FROM {role_capabilities}
63+
WHERE capability LIKE :capability AND roleid = ra.roleid LIMIT 1)
64+
AND ra.contextid = :contextid
5865
AND g.id $insql";
5966
$params['courseid'] = $this->course->id;
67+
$params['capability'] = 'mod/dialogue:receive';
68+
$params['contextid'] = $context->id;
6069
$params = array_merge($params, $inparams);
6170
return $this->execute_search_queries($search, $fields, $countfields, $sql, $params, $page, $perpage, 0, false);
6271
}

0 commit comments

Comments
 (0)