From 0dfcf5d58879939502ce29ddcce3ff48a1f66b36 Mon Sep 17 00:00:00 2001 From: donncha Date: Tue, 16 Aug 2005 11:30:35 +0000 Subject: Admin users can actually login now! git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@194 7be80a69-a1ef-0310-a953-fb0f7c49ff36 --- wp-inst/wp-content/mu-plugins/pluggable.php | 7 +++++-- wp-inst/wp-includes/wpmu-functions.php | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'wp-inst') diff --git a/wp-inst/wp-content/mu-plugins/pluggable.php b/wp-inst/wp-content/mu-plugins/pluggable.php index 8df1d66..39f8b98 100644 --- a/wp-inst/wp-content/mu-plugins/pluggable.php +++ b/wp-inst/wp-content/mu-plugins/pluggable.php @@ -15,8 +15,10 @@ function wp_login($username, $password, $already_md5 = false) { if (!$login) { if( is_site_admin( $username ) ) { + unset( $login ); + $userdetails = get_user_details( $username ); $login->user_login = $username; - $login->user_pass = $password; + $login->user_pass = $userdetails->user_pass; } else { $admins = get_admin_users_for_domain(); reset( $admins ); @@ -70,7 +72,8 @@ function get_userdata( $user_id ) { if ( $wpdb->prefix . 'user_level' == $meta->meta_key ) $user->user_level = $meta->meta_value; } - if( is_site_admin( $user_id ) == true ) { + $user_login = $wpdb->get_var( "SELECT user_login FROM " . $wpdb->users . " WHERE ID = '" . $user_id . "'" ); + if( is_site_admin( $user_login ) == true ) { $user->user_level = 10; $cap_key = $wpdb->prefix . 'capabilities'; $user->{$cap_key} = array( 'administrator' => '1' ); diff --git a/wp-inst/wp-includes/wpmu-functions.php b/wp-inst/wp-includes/wpmu-functions.php index 6ac3c77..ad1f1cd 100644 --- a/wp-inst/wp-includes/wpmu-functions.php +++ b/wp-inst/wp-includes/wpmu-functions.php @@ -361,16 +361,26 @@ function get_admin_users_for_domain( $sitedomain = '', $path = '' ) { return $details; } -function is_site_admin( $user_id = 0 ) { +function get_user_details( $username ) { + global $wpdb; + + return $wpdb->get_row( "SELECT * FROM $wpdb->users WHERE user_login = '$username'" ); +} + +function is_site_admin( $user_login = '0' ) { global $wpdb, $current_user; - if( $user_id == 0 ) - $user_id = $current_user->ID; + if( $user_login == '0' ) { + $user_id = $current_user->data->ID; + $user_login = $wpdb->get_var( "SELECT user_login FROM " . $wpdb->users . " WHERE ID = '" . $user_id . "'" ); + } else { + $user_id = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->users . " WHERE user_login = '" . $user_login . "'" ); + } $ret = true; $super_users = get_site_option( "super_users", "admin" ); - $pos = strpos( $super_users, $current_user->data->user_login ); + $pos = strpos( $super_users, $user_login ); if( false === $pos ) { if( $wpdb->get_var( "SELECT site_id FROM $wpdb->sitemeta WHERE site_id = '$wpdb->siteid' AND meta_key = 'admin_user_id' AND meta_value = '$user_id'" ) == false ) { $ret = false; -- cgit