$linkcss.' href="'.$CFG->wwwroot.'/course/view.php?id='.$course->id.'">'.
$course->fullname.'</a></b><br />';
- if ($teachers = get_users_by_capability($context, 'moodle/course:update')) {
+ if ($teachers = get_users_by_capability($context, 'moodle/course:update',
+ 'u.*, ul.timeaccess as lastaccess, ra.hidden',
+ $sort, '','','',$exceptions, false)) {
$canseehidden = has_capability('moodle/role:viewhiddenassigns', $context);
$namesarray = array();
foreach ($teachers as $teacher) {
* @param $exceptions - list of users to exclude
*/
function get_users_by_capability($context, $capability, $fields='', $sort='',
- $limitfrom='', $limitnum='', $groups='', $exceptions='') {
+ $limitfrom='', $limitnum='', $groups='', $exceptions='', $doanything=true) {
global $CFG;
/// Sorting out groups
/// Sorting out roles with this capability set
if ($possibleroles = get_roles_with_capability($capability, CAP_ALLOW, $context)) {
- if (!$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID)) { // Something is seriously wrong
- return false;
+ if (!$doanything) {
+ if (!$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID)) {
+ return false; // Something is seriously wrong
+ }
+ $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
}
- $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
$validroleids = array();
foreach ($possibleroles as $possiblerole) {
- if (isset($doanythingroles[$possiblerole->id])) { // We don't want these included
- continue;
+ if (!$doanything) {
+ if (isset($doanythingroles[$possiblerole->id])) { // We don't want these included
+ continue;
+ }
}
$caps = role_context_capabilities($possiblerole->id, $context, $capability); // resolved list
if ($caps[$capability] > 0) { // resolved capability > 0
$validroleids[] = $possiblerole->id;
}
}
+ if (empty($validroleids)) {
+ return false;
+ }
$roleids = '('.implode(',', $validroleids).')';
} else {
return false; // No need to continue, since no roles have this capability set
$context = get_context_instance(CONTEXT_COURSE, $courseid);
- if ($users = get_users_by_capability($context, 'moodle/course:update', 'u.*,ra.hidden', 'sortorder ASC')) {
+ if ($users = get_users_by_capability($context, 'moodle/course:update', 'u.*,ra.hidden', 'sortorder ASC',
+ '', '', '', '', false)) {
foreach ($users as $user) {
if (!$user->hidden || has_capability('moodle/role:viewhiddenassigns', $context)) {
return $user;
}
// Now we have to make sure site teachers are excluded
- $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
- if ($teachers = get_users_by_capability($sitecontext, 'moodle/course:update')) {
+ if ($teachers = get_course_teachers(SITEID)) {
foreach ($teachers as $teacher) {
$exceptions .= ','. $teacher->userid;
}
$sort = 'ul.timeaccess DESC';
$context = get_context_instance(CONTEXT_COURSE, $courseid);
- return get_users_by_capability($context, 'moodle/course:update', 'u.*, ul.timeaccess as lastaccess', $sort, '','','',$exceptions);
-
+ return get_users_by_capability($context, 'moodle/course:update', 'u.*, ul.timeaccess as lastaccess, ra.hidden', $sort, '','','',$exceptions, false);
/// some fields will be missing, like authority, editall
/*
return get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest,
function get_course_users($courseid, $sort='ul.timeaccess DESC', $exceptions='', $fields='') {
$context = get_context_instance(CONTEXT_COURSE, $courseid);
- return get_users_by_capability($context, 'moodle/course:view', 'u.*, ul.timeaccess as lastaccess', $sort, '','','',$exceptions);
+ return get_users_by_capability($context, 'moodle/course:view', 'u.*, ul.timeaccess as lastaccess', $sort, '','','',$exceptions, false);
}
}
$context = get_context_instance(CONTEXT_COURSE, $group->courseid);
- return get_users_by_capability($context, 'moodle/legacy:student', 'u.*, ul.timeaccess as lastaccess', $sort, '','',$groupids);
+ return get_users_by_capability($context, 'moodle/legacy:student', 'u.*, ul.timeaccess as lastaccess', $sort, '','',$groupids, '', false);
}
/**