Skip to content

Commit

Permalink
Fixes Bug MDL-8200, "Group admin interface shows all groups sitewide!"
Browse files Browse the repository at this point in the history
  • Loading branch information
nfreear committed Jan 17, 2007
1 parent 456f5e6 commit 163fab1
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
7 changes: 4 additions & 3 deletions group/db/upgrade.php
Expand Up @@ -167,14 +167,15 @@ function transfer_group_db() {
///unset($group->password);
///unset($group->courseid);
$status = (bool)$newgroupid = groups_create_group($group->courseid, $group);
debugging('Create group status: '.$status); //TODO: ?
if ($members_r) {
foreach ($members_r as $member) {
if ($member->groupid == $group->id) {
$status = groups_add_member($newgroupid, $member->userid);
$status = (bool)$memberid = groups_add_member($newgroupid, $member->userid);
}
}
}
echo 'Status: '.$status;
debugging('Add member status: '.$status);
}
///$status = drop_table($t_groups);
///$status = drop_table(new XMLDBTable('groups_members_temp'));
Expand Down Expand Up @@ -222,4 +223,4 @@ function xmldb_group_upgrade($oldversion=0) {
return $result;
}

?>
?>
25 changes: 18 additions & 7 deletions group/lib/groupinglib.php
Expand Up @@ -90,29 +90,40 @@ function groups_get_groups_not_in_grouping($groupingid, $courseid) {
}

/**
* Gets a list of the groups not in any grouping, but in this course.
* TODO: move to dbgroupinglib.php
* @param $courseid If null or false, returns groupids 'not in a grouping sitewide'.
* @return array An array of group IDs.
*/
function groups_get_groups_not_in_any_grouping($courseid) {
global $CFG;
/* SELECT g.id
FROM headmdl_groups AS g
WHERE g.id NOT IN
(SELECT groupid FROM headmdl_groups_groupings_groups);
/*Was: $sql = "SELECT g.id FROM {$CFG->prefix}groups AS g
WHERE g.id NOT IN
(SELECT groupid FROM {$CFG->prefix}groups_groupings_groups)";
*/
$join = '';
$where= '';
if ($courseid) {
$join = "INNER JOIN {$CFG->prefix}groups_courses_groups AS cg ON g.id = cg.groupid";
$where= "AND cg.courseid = '$courseid'";
}
$sql = "SELECT g.id
FROM {$CFG->prefix}groups AS g
$join
WHERE g.id NOT IN
(SELECT groupid FROM {$CFG->prefix}groups_groupings_groups)";
(SELECT groupid FROM {$CFG->prefix}groups_groupings_groups)
$where";

$records = get_records_sql($sql);
$groupids = array();
$groupids = groups_groups_to_groupids($records, $courseid);
/*$groupids = array();
if ($records) {
foreach ($records as $r) {
$groupids[] = $r->id;
}
} else {
return false;
}
}*/
return $groupids;
}

Expand Down

0 comments on commit 163fab1

Please sign in to comment.