$mastercap = false; $mygroups = groups_get_user_groups($courseid); $gids = implode(',', array_values($mygroups['0'])); $groups = empty($gids) ? array() : $DB->get_records_select('groups', 'id IN (' . $gids . ')'); } $globalaccess = empty($allgroups); // Fill the course users by $users = array(); $users_to_roles = array(); $users_to_groups = array(); $everyone = quickmail::get_non_suspended_users($context, $courseid); foreach ($everyone as $userid => $user) { $usergroups = groups_get_user_groups($courseid, $userid); $gids = ($globalaccess or $mastercap) ? array_values($usergroups['0']) : array_intersect(array_values($mygroups['0']), array_values($usergroups['0'])); $userroles = get_user_roles($context, $userid); $filterd = quickmail::filter_roles($userroles, $roles); // Available groups if (!$globalaccess and !$mastercap and empty($gids) or empty($filterd) or $userid == $USER->id) { continue; } $groupmapper = function ($id) use($allgroups) { return $allgroups[$id]; }; $users_to_groups[$userid] = array_map($groupmapper, $gids); $users_to_roles[$userid] = $filterd; if (!$user->suspended) { $users[$userid] = $user; } } if (empty($users)) { print_error('no_usergroups', 'block_quickmail');