if ($teachers = get_users_by_capability($context, 'moodle/course:update',
'u.*, ul.timeaccess as lastaccess, ra.hidden',
'r.sortorder ASC', '','','','', false)) {
+
$canseehidden = has_capability('moodle/role:viewhiddenassigns', $context);
$namesarray = array();
foreach ($teachers as $teacher) {
if (!$teacher->hidden || $canseehidden) {
- $roles = get_user_roles($context, $teacher->id);
+ $roles = get_user_roles($context, $teacher->id, true, 'r.sortorder ASC');
$role = array_shift($roles); // First one
$fullname = fullname($teacher, has_capability('moodle/site:viewfullnames', $context));
$namesarray[] = format_string($role->name).': <a href="'.$CFG->wwwroot.'/user/view.php?id='.
* @param int $userid
* @return array
*/
-function get_user_roles($context, $userid=0, $checkparentcontexts=true) {
+function get_user_roles($context, $userid=0, $checkparentcontexts=true, $order='c.contextlevel DESC, r.sortorder ASC') {
global $USER, $CFG, $db;
' AND ra.roleid = r.id
AND ra.contextid = c.id
AND '.$contexts.
- ' ORDER BY c.contextlevel DESC, r.sortorder ASC');
+ ' ORDER BY '.$order);
}
/**
/// If context is a course, then construct sql for ul
if ($context->contextlevel == CONTEXT_COURSE) {
$courseid = $context->instanceid;
- $coursesql = "AND (ul.courseid = $courseid OR ul.courseid IS NULL)";
+ $coursesql1 = "AND ul.courseid = $courseid";
} else {
- $coursesql = '';
+ $coursesql1 = '';
}
/// Sorting out roles with this capability set
$from = " FROM {$CFG->prefix}user u
INNER JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
INNER JOIN {$CFG->prefix}role r ON r.id = ra.roleid
- LEFT OUTER JOIN {$CFG->prefix}user_lastaccess ul ON ul.userid = u.id
+ LEFT OUTER JOIN {$CFG->prefix}user_lastaccess ul ON (ul.userid = u.id $coursesql1)
$groupjoin";
$where = " WHERE ra.contextid ".get_related_contexts_string($context)."
AND u.deleted = 0
AND ra.roleid in $roleids
$exceptionsql
- $coursesql
$groupsql";
return get_records_sql($select.$from.$where.$sortby, $limitfrom, $limitnum);
return record_exists('role_assignments', 'userid', $userid, 'roleid', $roleid);
}
}
-
?>