Index: modules/devel/devel.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/devel/devel.module,v retrieving revision 1.165 diff -u -p -r1.165 devel.module --- modules/devel/devel.module 22 May 2007 02:05:01 -0000 1.165 +++ modules/devel/devel.module 22 May 2007 22:29:56 -0000 @@ -269,12 +269,20 @@ function devel_block($op = 'list', $delt $dest = drupal_get_destination(); // Try to find at least 10 users that can switch. $roles = user_roles(1, 'switch users'); - $where = array('u.uid = 1'); - if (count($roles)) { - $where[] = 'r.rid IN ('. implode(',', array_keys($roles)) .')'; + if (isset($roles[2])) { + // If authenticated users have this permission, just grab + // the last 10 users, since there won't be records in + // {user_roles} and every user on the system can switch. + $users = db_query_range("SELECT DISTINCT u.uid, u.name FROM {users} u ORDER BY u.access DESC", 0, 10); + } + else { + $where = array('u.uid = 1'); + if (count($roles)) { + $where[] = 'r.rid IN ('. implode(',', array_keys($roles)) .')'; + } + $where_sql = implode(' OR ', $where); + $users = db_query_range("SELECT DISTINCT u.uid, u.name FROM {users} u LEFT JOIN {users_roles} r ON u.uid = r.uid WHERE $where_sql ORDER BY u.access DESC", 0, 10); } - $where_sql = implode(' OR ', $where); - $users = db_query_range("SELECT DISTINCT u.uid, u.name FROM {users} u LEFT JOIN {users_roles} r ON u.uid = r.uid WHERE $where_sql ORDER BY u.access DESC", 0, 10); while ($user = db_fetch_object($users)) { $links[$user->uid] = l(theme('placeholder', $user->name), 'devel/switch/'. $user->name, array('attributes' => array('title' => t('This user can switch back.')), 'query' => $dest, 'html' => TRUE)); }