diff --git a/admin/upgradeforumread.php b/admin/upgradeforumread.php index 840e04b66ab..c8db682c780 100644 --- a/admin/upgradeforumread.php +++ b/admin/upgradeforumread.php @@ -82,7 +82,7 @@ /// If its a group discussion, make sure the user is in the group. if ($discussion->groupid) { if (!isset($groups[$discussion->groupid][$user->id])) { - $groups[$discussion->groupid][$user->id] = ismember($discussion->groupid, $user->id); + $groups[$discussion->groupid][$user->id] = groups_is_member($discussion->groupid, $user->id); } } if (!$discussion->groupid || !empty($groups[$discussion->groupid][$user->id])) { diff --git a/blocks/quiz_results/block_quiz_results.php b/blocks/quiz_results/block_quiz_results.php index f0e8aaff75f..d3f968a7775 100644 --- a/blocks/quiz_results/block_quiz_results.php +++ b/blocks/quiz_results/block_quiz_results.php @@ -112,7 +112,7 @@ class block_quiz_results extends block_base { switch($groupmode) { case VISIBLEGROUPS: // Display group-mode results - $groups = get_groups($courseid); + $groups = groups_get_all_groups($courseid); if(empty($groups)) { // No groups exist, sorry @@ -262,7 +262,7 @@ class block_quiz_results extends block_base { return $this->content; } - $mygroups = get_groups($courseid, $USER->id); + $mygroups = groups_get_all_groups($courseid, $USER->id); if(empty($mygroups)) { // Not member of a group, show nothing return $this->content; diff --git a/blog/index.php b/blog/index.php index aeea0c71dfa..946e8b7a24f 100755 --- a/blog/index.php +++ b/blog/index.php @@ -100,7 +100,7 @@ switch ($filtertype) { } if (groupmode($course) == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $coursecontext)) { - if (!ismember($filterselect)) { + if (!groups_is_member($filterselect)) { error ('You are not a member of this course group'); } } diff --git a/blog/lib.php b/blog/lib.php index 53494cba161..3c4859d387b 100755 --- a/blog/lib.php +++ b/blog/lib.php @@ -452,9 +452,9 @@ or groupmode($courseid) != SEPARATEGROUPS) { return true; } else { - if ($usergroups = user_group($courseid, $targetuserid)) { + if ($usergroups = groups_get_all_groups($courseid, $targetuserid)) { foreach ($usergroups as $usergroup) { - if (ismember($usergroup->id)) { + if (groups_is_member($usergroup->id)) { return true; } } diff --git a/calendar/lib.php b/calendar/lib.php index b94e021a7db..6a839cf4588 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -1557,7 +1557,7 @@ function calendar_get_allowed_types(&$allowed) { $allowed->courses = array($course->id => 1); if($course->groupmode != NOGROUPS || !$course->groupmodeforce) { - $allowed->groups = get_groups($SESSION->cal_course_referer); + $allowed->groups = (boolean)groups_get_all_groups($SESSION->cal_course_referer); } } } diff --git a/course/report/log/lib.php b/course/report/log/lib.php index 132de869679..942eca7e45b 100644 --- a/course/report/log/lib.php +++ b/course/report/log/lib.php @@ -233,7 +233,7 @@ function print_mnet_log_selector_form($hostid, $course, $selecteduser=0, $select } if ($showgroups) { - if ($cgroups = get_groups($course->id)) { + if ($cgroups = groups_get_all_groups($course->id)) { foreach ($cgroups as $cgroup) { $groups[$cgroup->id] = $cgroup->name; } @@ -448,7 +448,7 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate='today' } if ($showgroups) { - if ($cgroups = get_groups($course->id)) { + if ($cgroups = groups_get_all_groups($course->id)) { foreach ($cgroups as $cgroup) { $groups[$cgroup->id] = $cgroup->name; } diff --git a/enrol/manual/enrol.php b/enrol/manual/enrol.php index f708faf11fd..7a31408d4c3 100644 --- a/enrol/manual/enrol.php +++ b/enrol/manual/enrol.php @@ -179,7 +179,7 @@ function check_entry($form, $course) { */ function check_group_entry ($courseid, $password) { $ingroup = false; - if (($groups = get_groups($courseid)) !== false) { + if (($groups = groups_get_all_groups($courseid))) { foreach ($groups as $group) { if ( !empty($group->enrolmentkey) and ($password == $group->enrolmentkey) ) { $ingroup = $group->id; diff --git a/grade/edit/tree/grade.php b/grade/edit/tree/grade.php index 701fb63e306..93b1410ea7d 100644 --- a/grade/edit/tree/grade.php +++ b/grade/edit/tree/grade.php @@ -52,7 +52,7 @@ if (!$grade_item = grade_item::fetch(array('id'=>$itemid, 'courseid'=>$courseid) // now verify grading user has access to all groups or is member of the same group when separate groups used in course if (groupmode($COURSE) == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) { - if ($groups = user_group($COURSE->id, $userid)) { + if ($groups = groups_get_all_groups($COURSE->id, $userid)) { $ok = false; foreach ($groups as $group) { if (groups_is_member($group->id, $USER->id)) { diff --git a/group/db/dbbasicgrouplib.php b/group/db/dbbasicgrouplib.php index 986ed64bd8a..40e3e9ad0b6 100644 --- a/group/db/dbbasicgrouplib.php +++ b/group/db/dbbasicgrouplib.php @@ -9,9 +9,6 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License * @package groups */ -require_once($CFG->libdir.'/datalib.php'); -require_once($CFG->dirroot.'/group/lib.php'); - /******************************************************************************* * Utility functions @@ -140,30 +137,6 @@ function groups_db_get_group_settings($groupid, $courseid=false, $alldata=false) } -/** - * Given two users, determines if there exists a group to which they both belong - * @param int $userid1 The id of the first user - * @param int $userid2 The id of the second user - * @return boolean True if the users are in a common group, false otherwise or - * if an error occurred. - */ -function groups_db_users_in_common_group($userid1, $userid2) { - global $CFG; - $havecommongroup = false; - $sql = "SELECT gm1.groupid, 1 FROM {$CFG->prefix}groups_members gm1 " . - "INNER JOIN {$CFG->prefix}groups_members gm2 " . - "ON gm1.groupid = gm2.groupid" . - "WHERE gm1.userid = '$userid1' AND gm2.userid = '$userid2'"; - $commongroups = get_record_sql($sql); - if ($commongroups) { - $havecommongroup = true; - } - - return $havecommongroup; -} - - - /******************************************************************************* Membership functions ******************************************************************************/ @@ -185,64 +158,6 @@ function groups_db_group_exists($groupid) { return $exists; } - -/** - * Determine if a course ID, group name and description match a group in the database. - * For backup/restorelib.php - * @return mixed A group-like object with $group->id, or false. - */ -function groups_db_group_matches($courseid, $grp_name, $grp_description) { -//$gro_db->id; $gro_db = get_record("groups","courseid",$restore->course_id,"name",$gro->name,"description",$gro->description); - global $CFG; - $sql = "SELECT g.id, g.name, g.description - FROM {$CFG->prefix}groups g - WHERE g.name = '$grp_name' - AND g.description = '$grp_description' - AND g.courseid = '$courseid'"; - $records = get_records_sql($sql); - $group = false; - if ($records) { - $group = array_shift($records); - } - return $group; -} - -/** - * Determine if a course ID, and group name match a group in the database. - * @return mixed A group-like object with $group->id, or false. - */ -function groups_db_group_name_exists($courseid, $grp_name) { - global $CFG; - $sql = "SELECT g.id, g.name - FROM {$CFG->prefix}groups g - WHERE g.name = '$grp_name' - AND g.courseid = '$courseid'"; - $records = get_records_sql($sql); - $group = false; - if ($records) { - $group = current($records); - } - return $group; -} - -/** - * Determines if a specified user is a member of a specified group - * @param int $groupid The group about which the request has been made - * @param int $userid The user about which the request has been made - * @return boolean True if the user is a member of the group, false otherwise - */ -function groups_db_is_member($groupid, $userid) { - if (!$groupid or !$userid) { - $ismember = false; - } else { - $ismember = record_exists($table = 'groups_members', 'groupid', - $groupid, 'userid', $userid); - } - - return $ismember; -} - - /** * Determines if a specified group is a group for a specified course * @param int $groupid The group about which the request has been made @@ -399,54 +314,6 @@ function groups_db_remove_member($groupid, $userid) { } -/** - * Delete a specified group, first removing members and links with courses and groupings. - * @param int $groupid The group to delete - * @return boolean True if deletion was successful, false otherwise - */ -function groups_db_delete_group($groupid) { - if (!$groupid) { - $success = false; - } else { - $success = true; - // Get a list of users for the group and remove them all. - - $userids = groups_db_get_members($groupid); - if ($userids != false) { - foreach($userids as $userid) { - $userdeleted = groups_db_remove_member($userid, $groupid); - if (!$userdeleted) { - $success = false; - } - } - } - - // Remove any links with groupings to which the group belongs. - //TODO: dbgroupinglib also seems to delete these links - duplication? - $groupingids = groups_get_groupings_for_group($groupid); - if ($groupingids != false) { - foreach($groupingids as $groupingid) { - $groupremoved = groups_remove_group_from_grouping($groupid, - $groupingid); - if(!$groupremoved) { - $success = false; - } - } - } - - // Delete the group itself - $results = delete_records($table = 'groups', $field1 = 'id', - $value1 = $groupid); - // delete_records returns an array of the results from the sql call, - // not a boolean, so we have to set our return variable - if ($results == false) { - $success = false; - } - } - - return $success; -} - /** * Internal function to set the time a group was modified. */ @@ -455,49 +322,4 @@ function groups_db_set_group_modified($groupid) { } -/****************************************************************************** - * Groups SQL clauses for modules and core. - */ - -/** - * Returns the table in which group members are stored, with a prefix 'gm'. - * @return SQL string. - */ -function groups_members_from_sql() { - global $CFG; - return " {$CFG->prefix}groups_members gm "; -} - -/** - * Returns a join testing user.id against member's user ID. - * Relies on 'user' table being included as 'user u'. - * Used in Quiz module reports. - * @param group ID, optional to include a test for this in the SQL. - * @return SQL string. - */ -function groups_members_join_sql($groupid=false) { - $sql = ' JOIN '.groups_members_from_sql().' ON u.id = gm.userid '; - if ($groupid) { - $sql = "AND gm.groupid = '$groupid' "; - } - return $sql; - //return ' INNER JOIN '.$CFG->prefix.'role_assignments ra ON u.id=ra.userid'. - // ' INNER JOIN '.$CFG->prefix.'context c ON ra.contextid=c.id AND c.contextlevel='.CONTEXT_GROUP.' AND c.instanceid='.$groupid; -} - -/** - * Returns SQL for a WHERE clause testing the group ID. - * Optionally test the member's ID against another table's user ID column. - * @param groupid - * @param userid_sql Optional user ID column selector, example "mdl_user.id", or false. - * @return SQL string. - */ -function groups_members_where_sql($groupid, $userid_sql=false) { - $sql = " gm.groupid = '$groupid' "; - if ($userid_sql) { - $sql .= "AND $userid_sql = gm.userid "; - } - return $sql; -} - ?> diff --git a/group/index.php b/group/index.php index 72f71aacd3d..ab86fc3bd0e 100644 --- a/group/index.php +++ b/group/index.php @@ -129,8 +129,8 @@ if (!$course = groups_get_course_info($courseid)) { echo '