]> git.mjollnir.org Git - moodle.git/commitdiff
merged, fixed a problem when a user has not visited a course, he is not shown. Change...
authortoyomoyo <toyomoyo>
Thu, 16 Nov 2006 05:17:43 +0000 (05:17 +0000)
committertoyomoyo <toyomoyo>
Thu, 16 Nov 2006 05:17:43 +0000 (05:17 +0000)
course/lib.php
lib/accesslib.php

index d3c35d9cd47bb09ba3ee56de9b084fa8b589311c..59ea351835daddc7773ea95b1a1f82aec3b8f089 100644 (file)
@@ -1552,11 +1552,12 @@ function print_course($course, $width="100%") {
     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='.
index 5a519ad7ea4e7fb2d0e9eb2fd9856dbf41757185..c440539683f04109c2cd77f860bb403eee57eb19 100755 (executable)
@@ -2872,7 +2872,7 @@ function get_all_roles() {
  * @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;
 
@@ -2897,7 +2897,7 @@ function get_user_roles($context, $userid=0, $checkparentcontexts=true) {
                            '   AND ra.roleid = r.id
                                AND ra.contextid = c.id
                                AND '.$contexts.
-                           ' ORDER BY c.contextlevel DESC, r.sortorder ASC');
+                           ' ORDER BY '.$order);
 }
 
 /**
@@ -3049,9 +3049,9 @@ function get_users_by_capability($context, $capability, $fields='', $sort='',
 /// 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
@@ -3089,13 +3089,12 @@ function get_users_by_capability($context, $capability, $fields='', $sort='',
     $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);
@@ -3332,5 +3331,4 @@ function user_has_role_assignment($userid, $roleid, $contextid=0) {
         return record_exists('role_assignments', 'userid', $userid, 'roleid', $roleid);
     }
 }
-
 ?>