diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-01-24 14:09:58 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-01-24 14:09:58 +0000 |
commit | a5032056e9c5dee13107194c94cd666f6a79ae0e (patch) | |
tree | 658407dc828db44bec62e4dfe6e0253ece2d04e0 /wp-inst | |
parent | a7298cdab52ddae104b7e63f44255925036283c1 (diff) | |
download | wordpress-mu-a5032056e9c5dee13107194c94cd666f6a79ae0e.tar.gz wordpress-mu-a5032056e9c5dee13107194c94cd666f6a79ae0e.tar.xz wordpress-mu-a5032056e9c5dee13107194c94cd666f6a79ae0e.zip |
wpcom merge
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@516 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst')
-rw-r--r-- | wp-inst/wp-content/mu-plugins/misc.php | 2 | ||||
-rw-r--r-- | wp-inst/wp-content/mu-plugins/pluggable.php | 40 |
2 files changed, 29 insertions, 13 deletions
diff --git a/wp-inst/wp-content/mu-plugins/misc.php b/wp-inst/wp-content/mu-plugins/misc.php index a37c636..8e93f99 100644 --- a/wp-inst/wp-content/mu-plugins/misc.php +++ b/wp-inst/wp-content/mu-plugins/misc.php @@ -50,7 +50,7 @@ function upload_is_user_over_quota( $ret ) { add_filter( "pre_upload_error", "upload_is_user_over_quota" ); function upload_is_file_too_big( $ret ) { - $type = strtolower( substr( $_FILES[ 'image' ][ 'name' ], 1+strpos( $_FILES[ 'image' ][ 'name' ], '.' ) ) ); + $type = strtolower( substr( $_FILES[ 'image' ][ 'name' ], 1+strrpos( $_FILES[ 'image' ][ 'name' ], '.' ) ) ); $allowed_types = split( " ", get_site_option( "upload_filetypes" ) ); if( in_array( $type, $allowed_types ) == false ) { $ret = "You cannot upload files of this type.<br />"; diff --git a/wp-inst/wp-content/mu-plugins/pluggable.php b/wp-inst/wp-content/mu-plugins/pluggable.php index b75dd73..7943a6c 100644 --- a/wp-inst/wp-content/mu-plugins/pluggable.php +++ b/wp-inst/wp-content/mu-plugins/pluggable.php @@ -1,7 +1,7 @@ <?php function wp_login($username, $password, $already_md5 = false) { - global $wpdb, $error; + global $wpdb, $error, $current_user; if ( !$username ) return false; @@ -11,7 +11,11 @@ function wp_login($username, $password, $already_md5 = false) { return false; } - $login = $wpdb->get_row("SELECT ID, user_login, user_pass FROM $wpdb->users WHERE user_login = '$username'"); + if ($current_user->data->user_login == $username) + return true; + + $login = get_userdatabylogin($username); + //$login = $wpdb->get_row("SELECT ID, user_login, user_pass FROM $wpdb->users WHERE user_login = '$username'"); if (!$login) { if( is_site_admin( $username ) ) { @@ -36,6 +40,16 @@ function wp_login($username, $password, $already_md5 = false) { $error = __('<strong>Error</strong>: Wrong username.'); return false; } else { + $primary_blog = get_usermeta( $login->ID, "primary_blog" ); + if( $primary_blog ) { + $details = get_blog_details( $primary_blog ); + if( is_object( $details ) ) { + if( $details->archived == 1 || $details->spam == 1 || $details->deleted == 1 ) { + $error = __('<strong>Error</strong>: Blog suspended.'); + return false; + } + } + } // If the password is already_md5, it has been double hashed. // Otherwise, it is plain text. if ( ($already_md5 && $login->user_login == $username && md5($login->user_pass) == $password) || ($login->user_login == $username && $login->user_pass == md5($password)) ) { @@ -55,13 +69,15 @@ function get_userdata( $user_id ) { return false; $user = wp_cache_get($user_id, 'users'); - if( $user && is_site_admin( $user->user_login ) == true ) { - $user->user_level = 10; - $cap_key = $wpdb->prefix . 'capabilities'; - $user->{$cap_key} = array( 'administrator' => '1' ); - return $user; - } elseif ( $user ) - return $user; + if( $user->user_level != '' ) { + if( $user && is_site_admin( $user->user_login ) == true ) { + $user->user_level = 10; + $cap_key = $wpdb->prefix . 'capabilities'; + $user->{$cap_key} = array( 'administrator' => '1' ); + return $user; + } elseif ( $user ) + return $user; + } if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE ID = '$user_id'") ) return false; @@ -88,7 +104,7 @@ function get_userdata( $user_id ) { } wp_cache_add($user_id, $user, 'users'); - wp_cache_add($user->user_login, $user, 'users'); + wp_cache_add($user->user_login, $user, 'userlogins'); return $user; } @@ -100,7 +116,7 @@ function get_userdatabylogin($user_login) { if ( empty( $user_login ) ) return false; - $userdata = wp_cache_get($user_login, 'users'); + $userdata = wp_cache_get($user_login, 'userlogins'); if( $userdata && is_site_admin( $user_login ) == true ) { $userdata->user_level = 10; $cap_key = $wpdb->prefix . 'capabilities'; @@ -133,7 +149,7 @@ function get_userdatabylogin($user_login) { } wp_cache_add($user->ID, $user, 'users'); - wp_cache_add($user->user_login, $user, 'users'); + wp_cache_add($user->user_login, $user, 'userlogins'); return $user; |