diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-10-15 15:10:38 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-10-15 15:10:38 +0000 |
commit | 6cf8cd1294f2198b32e7667a440a840dac4ffa52 (patch) | |
tree | 394365c446e5afa1307956d433511aedcf37b657 /wp-includes/pluggable.php | |
parent | b56beb24710dbf561b56824aa8e128bb3ed25b33 (diff) | |
download | wordpress-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.php | 36 |
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; |