]> git.mjollnir.org Git - moodle.git/commitdiff
extending get_user_roles with more options and more returned info
authormoodler <moodler>
Sat, 16 Sep 2006 15:22:55 +0000 (15:22 +0000)
committermoodler <moodler>
Sat, 16 Sep 2006 15:22:55 +0000 (15:22 +0000)
lib/accesslib.php

index 9ef81807f452ead6c2bb1b2fae367c5b074bf360..8ab5e6e244a70ad0465187d956125b35184a5d32 100755 (executable)
@@ -2236,7 +2236,7 @@ function user_can_assign($context, $targetroleid) {
  * @param int $userid
  * @return array
  */
-function get_user_roles($context, $userid=0) {
+function get_user_roles($context, $userid=0, $checkparentcontexts=true) {
 
     global $USER, $CFG, $db;
 
@@ -2247,16 +2247,19 @@ function get_user_roles($context, $userid=0) {
         $userid = $USER->id;
     }
 
-    if ($parents = get_parent_contexts($context)) {
-        $contexts = ' AND ra.contextid IN ('.implode(',' , $parents).','.$context->id.')';
+    if ($checkparentcontexts && ($parents = get_parent_contexts($context))) {
+        $contexts = ' ra.contextid IN ('.implode(',' , $parents).','.$context->id.')';
     } else {
-        $contexts = ' AND ra.contextid = \''.$context->id.'\'';
+        $contexts = ' ra.contextid = \''.$context->id.'\'';
     }
 
-    return get_records_sql('SELECT *
-                             FROM '.$CFG->prefix.'role_assignments ra
+    return get_records_sql('SELECT ra.*, r.name
+                             FROM '.$CFG->prefix.'role_assignments ra,
+                                  '.$CFG->prefix.'role r
                              WHERE ra.userid = '.$userid.
-                             $contexts);
+                           '   AND ra.roleid = r.id
+                               AND '.$contexts. 
+                           ' ORDER BY r.sortorder ASC');
 }
 
 /**
@@ -2356,7 +2359,7 @@ function get_users_by_capability($context, $capability, $fields='', $sort='',
 
 /// Set up default fields
     if (empty($fields)) {
-        $fields = 'u.*, ul.timeaccess as lastaccess';
+        $fields = 'u.*, ul.timeaccess as lastaccess, ra.hidden';
     }
 
 /// Set up default sort