diff options
-rw-r--r-- | modules/user.module | 7 | ||||
-rw-r--r-- | modules/user/user.module | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/modules/user.module b/modules/user.module index cae3014fc..ca65a9062 100644 --- a/modules/user.module +++ b/modules/user.module @@ -25,6 +25,13 @@ function sess_read($key) { $result = db_query_range("SELECT u.*, s.*, r.name AS role FROM {users} u INNER JOIN {role} r ON u.rid = r.rid INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '". check_query($key) ."' AND u.status < 3", 0, 1); $user = db_fetch_object($result); + if ($user->data && $data = unserialize($user->data)) { + foreach ($data as $key => $value) { + if (!isset($user->$key)) { + $user->$key = $value; + } + } + } return !empty($user->session) ? $user->session : ''; } diff --git a/modules/user/user.module b/modules/user/user.module index cae3014fc..ca65a9062 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -25,6 +25,13 @@ function sess_read($key) { $result = db_query_range("SELECT u.*, s.*, r.name AS role FROM {users} u INNER JOIN {role} r ON u.rid = r.rid INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '". check_query($key) ."' AND u.status < 3", 0, 1); $user = db_fetch_object($result); + if ($user->data && $data = unserialize($user->data)) { + foreach ($data as $key => $value) { + if (!isset($user->$key)) { + $user->$key = $value; + } + } + } return !empty($user->session) ? $user->session : ''; } |