summaryrefslogtreecommitdiffstats
path: root/wp-inst
diff options
context:
space:
mode:
Diffstat (limited to 'wp-inst')
-rw-r--r--wp-inst/wp-content/mu-plugins/pluggable.php7
-rw-r--r--wp-inst/wp-includes/wpmu-functions.php18
2 files changed, 19 insertions, 6 deletions
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;