From 0b943ef12cedfc8cb0b275c7c8b4600df1714510 Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 18 Mar 2008 16:38:25 +0000 Subject: [PATCH] MDL-13921 Incorrect access given to members of group included in 2 groupings; merged from MOODLE_19_STABLE --- lib/grouplib.php | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/grouplib.php b/lib/grouplib.php index fa75173ac9..99773ff187 100644 --- a/lib/grouplib.php +++ b/lib/grouplib.php @@ -147,17 +147,18 @@ function groups_get_user_groups($courseid, $userid=0) { $userid = $USER->id; } - if (!$groups = get_records_sql("SELECT g.id, gg.groupingid - FROM {$CFG->prefix}groups g - JOIN {$CFG->prefix}groups_members gm ON gm.groupid = g.id - LEFT JOIN {$CFG->prefix}groupings_groups gg ON gg.groupid = g.id - WHERE gm.userid = $userid AND g.courseid = $courseid")) { + if (!$rs = get_recordset_sql("SELECT g.id, gg.groupingid + FROM {$CFG->prefix}groups g + JOIN {$CFG->prefix}groups_members gm ON gm.groupid = g.id + LEFT JOIN {$CFG->prefix}groupings_groups gg ON gg.groupid = g.id + WHERE gm.userid = $userid AND g.courseid = $courseid")) { return array('0' => array()); } - $result = array('0' => array_keys($groups)); // all groups - - foreach ($groups as $group) { + $result = array(); + $allgroups = array(); + + while ($group = rs_fetch_next_record($rs)) { if (is_null($group->groupingid)) { continue; } @@ -165,7 +166,11 @@ function groups_get_user_groups($courseid, $userid=0) { $result[$group->groupingid] = array(); } $result[$group->groupingid][$group->id] = $group->id; + $allgroups[$group->id] = $group->id; } + rs_close($rs); + + $result['0'] = array_keys($allgroups); // all groups return $result; } -- 2.39.5