/** * Deletes the link between the specified user and group. * * @param mixed $grouporid The group id or group object * @param mixed $userorid The user id or user object * @return bool True if deletion was successful, false otherwise */ function groups_remove_member($grouporid, $userorid) { global $DB; if (is_object($userorid)) { $userid = $userorid->id; } else { $userid = $userorid; } if (is_object($grouporid)) { $groupid = $grouporid->id; $group = $grouporid; } else { $groupid = $grouporid; $group = $DB->get_record('groups', array('id' => $groupid), '*', MUST_EXIST); } if (!groups_is_member($groupid, $userid)) { return true; } $DB->delete_records('groups_members', array('groupid' => $groupid, 'userid' => $userid)); // Update group info. $time = time(); $DB->set_field('groups', 'timemodified', $time, array('id' => $groupid)); $group->timemodified = $time; // Trigger group event. $params = array('context' => context_course::instance($group->courseid), 'objectid' => $groupid, 'relateduserid' => $userid); $event = \core\event\group_member_removed::create($params); $event->add_record_snapshot('groups', $group); $event->trigger(); return true; }