summaryrefslogtreecommitdiffstats
path: root/wp-inst
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-08-16 11:30:35 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-08-16 11:30:35 +0000
commit0dfcf5d58879939502ce29ddcce3ff48a1f66b36 (patch)
tree8d814921e956199f8651ec8999660d2bd6fc4253 /wp-inst
parent23e764636392f7271c6769339703e8cdf4934c08 (diff)
downloadwordpress-mu-0dfcf5d58879939502ce29ddcce3ff48a1f66b36.tar.gz
wordpress-mu-0dfcf5d58879939502ce29ddcce3ff48a1f66b36.tar.xz
wordpress-mu-0dfcf5d58879939502ce29ddcce3ff48a1f66b36.zip
Admin users can actually login now!
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@194 7be80a69-a1ef-0310-a953-fb0f7c49ff36
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;