summaryrefslogtreecommitdiff
path: root/modules/user.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user.module')
-rw-r--r--modules/user.module19
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;