--- site_user_list_roles.module	2007-05-23 06:49:00.000000000 +1000
+++ site_user_list_roles.module.mine	2007-11-22 16:25:43.000000000 +1100
@@ -46,6 +46,15 @@
   );
   $users_roles = user_roles(true);
   unset($users_roles[DRUPAL_AUTHENTICATED_RID]); // all users are authenticated!
+
+  
+  $form['static']['site_user_list_roles_static_use_limit_arg'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow the placement of a role name as a path argument to limit results'),
+    '#default_value' => variable_get('site_user_list_roles_static_use_limit_arg', 0),
+    '#description' => t('For example user might specify /site_user_list/editor, if "editor" which would restrict all entries to just "editor" role, you must ensure each of the possibilities is selected.')
+  );
+  
   $form['static']['site_user_list_roles_static_roles'] = array(
     '#type' => 'checkboxes',
     '#options' => $users_roles,
@@ -79,6 +88,7 @@
   variable_set('site_user_list_roles_display', 
                _site_user_list_roles_user_transform_roles(array_filter($data['site_user_list_roles_display'])));
   
+  variable_set('site_user_list_roles_static_use_limit_arg',$data['site_user_list_roles_static_use_limit_arg']);
   drupal_set_message('The settings have been saved.');
   
   site_user_list_roles_rebuild_table();
@@ -128,6 +138,20 @@
 }
 
 function site_user_list_roles_site_user_list_restrict($search = array()) {
+  
+  // was there an extra variable set?
+  if(is_string(arg(1)) ) {
+    // did they specify they wanted to filter the output dynamically with an argument of role name?
+    $role_name = preg_replace('/[^\w\s\d]/','',check_plain(arg(1)));
+    if( variable_get('site_user_list_roles_static_use_limit_arg', 0) && strlen($role_name)>0 ) {
+      $restrict['site_user_list_roles']['joins'][]="LEFT JOIN {users_roles} on `@uid` = users_roles.uid";  
+      $restrict['site_user_list_roles']['joins'][]="LEFT JOIN {role} on users_roles.rid = role.rid";
+      $restrict['site_user_list_roles']['joins'][]='WHERE role.name LIKE "'.$role_name.'"';
+      return $restrict;
+    }
+  }  
+ 
+  
 }
 
 function site_user_list_roles_site_user_list_fields() {
