--- /Users/tim/Documents/Dev/Drupal/- Work/members-work.module	2007-01-30 23:48:07.000000000 -0500
+++ /Users/tim/Documents/Dev/Drupal/- Work/members-work2.module	2007-01-30 23:59:41.000000000 -0500
@@ -227,7 +227,14 @@ function members_page_roles($rid = null)
       foreach (_member_fields() as $field => $data) {
         // Don't show the "Roles" column
         if (in_array($field, $enabled_fields) && $data != "Roles") {
-          $fields[$field] = $data;
+          if ($field == 'status') {
+            if (user_access('administer users')) {
+              $fields[$field] = $data;
+            }
+          }
+          else {
+            $fields[$field] = $data;
+          }
         }
       }
 
@@ -259,12 +266,22 @@ function members_page_roles($rid = null)
         $query .= ' WHERE';
       }
 
-      // the users_roles table isn't used if we're looking for only the "authenticated users" role
-      if ($rid != 2) {
-        $query .= " r.rid = $rid AND";
+      if ($rid == 2) {
+        // Don't show blocked accounts to users without admin users access
+        if (!user_access('administer users')) {
+          $query .= " u.status=1" . tablesort_sql($header);
+        }
+      }
+      else {
+        // Don't show blocked accounts to users without admin users access
+        if (user_access('administer users')) {
+          $query .= " r.rid = $rid" . tablesort_sql($header);
+        }
+        else {
+          $query .= " r.rid = $rid AND u.status=1" . tablesort_sql($header);
+        }
       }
 
-      $query .= ' u.status=1' . tablesort_sql($header);
       $result = pager_query($query, 200);
 
       $rows = array();
@@ -289,6 +306,9 @@ function members_page_roles($rid = null)
           else if ($field == 'access') {
             $data = ($account->login) ? format_interval(time() - $account->access) : t('Never logged in');
           }
+          else if ($field == 'status') {
+            $data = ($account->status) ? 'Active' : 'Blocked';
+          }
           else {
             $data = $account->$field;
           }
