summaryrefslogtreecommitdiffstats
path: root/wp-includes/pluggable.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2007-10-15 15:10:38 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2007-10-15 15:10:38 +0000
commit6cf8cd1294f2198b32e7667a440a840dac4ffa52 (patch)
tree394365c446e5afa1307956d433511aedcf37b657 /wp-includes/pluggable.php
parentb56beb24710dbf561b56824aa8e128bb3ed25b33 (diff)
downloadwordpress-mu-6cf8cd1294f2198b32e7667a440a840dac4ffa52.tar.gz
wordpress-mu-6cf8cd1294f2198b32e7667a440a840dac4ffa52.tar.xz
wordpress-mu-6cf8cd1294f2198b32e7667a440a840dac4ffa52.zip
Revert get_userdatabylogin() to 1.2.5a version
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1075 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-includes/pluggable.php')
-rw-r--r--wp-includes/pluggable.php36
1 files changed, 28 insertions, 8 deletions
diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php
index 72a4be7..b25ede2 100644
--- a/wp-includes/pluggable.php
+++ b/wp-includes/pluggable.php
@@ -123,20 +123,40 @@ function get_userdatabylogin($user_login) {
$userdata = wp_cache_get($user_login, 'userlogins');
- if ( $userdata )
+ if( $userdata && is_site_admin( $user_login ) == true ) {
+ $userdata->user_level = 10;
+ $cap_key = $wpdb->prefix . 'capabilities';
+ $userdata->{$cap_key} = array( 'administrator' => '1' );
+ return $userdata;
+ } elseif( $userdata )
return $userdata;
- $user_login = $wpdb->escape($user_login);
-
- if ( !$user_ID = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$user_login'") )
+ if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
return false;
- $user = get_userdata($user_ID);
+ $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
+
+ if ($metavalues) {
+ foreach ( $metavalues as $meta ) {
+ @ $value = unserialize($meta->meta_value);
+ if ($value === FALSE)
+ $value = $meta->meta_value;
+ $user->{$meta->meta_key} = $value;
+
+ // We need to set user_level from meta, not row
+ if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
+ $user->user_level = $meta->meta_value;
+ }
+ }
if( is_site_admin( $user_login ) == true ) {
- $user->user_level = 10;
- $cap_key = $wpdb->prefix . 'capabilities';
- $user->{$cap_key} = array( 'administrator' => '1' );
+ $user->user_level = 10;
+ $cap_key = $wpdb->prefix . 'capabilities';
+ $user->{$cap_key} = array( 'administrator' => '1' );
}
+
+ wp_cache_add($user->ID, $user, 'users');
+ wp_cache_add($user->user_login, $user, 'userlogins');
+
return $user;
}
endif;