diff options
Diffstat (limited to 'modules/user.module')
-rw-r--r-- | modules/user.module | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/modules/user.module b/modules/user.module index 915d3414f..bb77c128f 100644 --- a/modules/user.module +++ b/modules/user.module @@ -54,14 +54,19 @@ function user_load($array = array()) { } $result = db_query_range("SELECT u.* FROM {users} u WHERE $query u.status < 3", 0, 1); - $user = db_fetch_object($result); - $user = drupal_unpack($user); - user_module_invoke('load', $array, $user); + if (db_num_rows($result)) { + $user = db_fetch_object($result); + $user = drupal_unpack($user); + user_module_invoke('load', $array, $user); - $user->roles = array(); - $result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid); - while ($role = db_fetch_object($result)) { - $user->roles[$role->rid] = $role->name; + $user->roles = array(); + $result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid); + while ($role = db_fetch_object($result)) { + $user->roles[$role->rid] = $role->name; + } + } + else { + $user = new StdClass(); } return $user; |