]> git.mjollnir.org Git - moodle.git/commitdiff
Minor problems with roles selection in participants list MDL-7630
authorskodak <skodak>
Mon, 20 Nov 2006 20:47:17 +0000 (20:47 +0000)
committerskodak <skodak>
Mon, 20 Nov 2006 20:47:17 +0000 (20:47 +0000)
user/index.php

index ef7361c4e58ff160714aa0aaa7bbf34a545ec4a6..77c7294c49e77fbb4703fec7aef4079a342094ac 100644 (file)
 
     require_login($course->id);
 
+    if (!has_capability('moodle/course:viewparticipants', $context)
+            && !has_capability('moodle/site:viewparticipants', $context)) {
+        print_error('nopermissions');
+    }
+
+    $rolenames = array();
+
+    if ($roles = get_roles_used_in_context($context, true)) {
+        // We should exclude "admin" users (those with "doanything" at site level) because 
+        // Otherwise they appear in every participant list
+
+        $sitecontext = get_context_instance(CONTEXT_SYSTEM);
+        $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
 
-    if ($roles = get_roles_used_in_context($context)) {
         foreach ($roles as $role) {
-            $options[$role->id] = $role->name;
+            if (isset($doanythingroles[$role->id])) {   // Avoid this role (ie admin)
+                unset($roles[$role->id]);
+                continue;
+            }
+            $rolenames[$role->id] = strip_tags(format_string($role->name));   // Used in menus etc later on
         }
-    } else { // no roles yet
+    }
+
+    // no roles to display yet?
+    if (empty($rolenames)) {    
         if (has_capability('moodle/user:assign', $context)) {
             redirect($CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$context->id);
         } else {
-            error ('no participants found for this course');
+            error ('No participants found for this course');
         }
     }
 
-    if (!has_capability('moodle/course:viewparticipants', $context)
-            && !has_capability('moodle/site:viewparticipants', $context)) {
-        print_error('nopermissions');
-    }
-
     if ($course->id == SITEID) {
         if (!has_capability('moodle/course:viewparticipants', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
             print_header("$course->shortname: ".get_string('participants'), $course->fullname,
     }
 
 
-    if ($roles = get_roles_used_in_context($context, true)) {
-        
-        // We should exclude "admin" users (those with "doanything" at site level) because 
-        // Otherwise they appear in every participant list
-
-        $sitecontext = get_context_instance(CONTEXT_SYSTEM);
-        $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
-
-        foreach ($roles as $role) {
-            if (isset($doanythingroles[$role->id])) {   // Avoid this role (ie admin)
-                unset($roles[$role->id]);
-                continue;
-            }
-            $rolenames[$role->id] = strip_tags(format_string($role->name));   // Used in menus etc later on
-        }
-    }
-
-
     /// Define a table showing a list of users in the current role selection
 
     $tablecolumns = array('userpic', 'fullname');
 
     /// If there are multiple Roles in the course, then show a drop down menu for switching
 
-    if (!empty($rolenames)) {
+    if (count($rolenames) > 1) {
         echo '<div class="rolesform">';
         echo get_string('currentrole', 'role').': ';
         $rolenames = array(0 => get_string('all')) + $rolenames;
-        popup_form('index.php?contextid='.$context->id.'&amp;sifirst=&amp;silast=&amp;roleid=', $rolenames,
+        popup_form("$CFG->wwwroot/user/index.php?contextid=$context->id&amp;sifirst=&amp;silast=&amp;roleid=", $rolenames,
                    'rolesform', $roleid, '');
         echo '</div>';
     }