diff --git a/wp-includes/ms-default-filters.php b/wp-includes/ms-default-filters.php index d574c8882..c05ed8809 100644 --- a/wp-includes/ms-default-filters.php +++ b/wp-includes/ms-default-filters.php @@ -2,7 +2,6 @@ // Users add_filter ( 'wpmu_validate_user_signup', 'signup_nonce_check' ); add_action ( 'init', 'maybe_add_existing_user_to_blog' ); -add_filter ( 'wp_authenticate_user', 'wordpressmu_authenticate_siteadmin', 10, 2 ); add_action ( 'wpmu_new_user', 'newuser_notify_siteadmin' ); add_action ( 'wpmu_activate_user', 'add_new_user_to_blog', 10, 3 ); add_action ( 'sanitize_user', 'strtolower_usernames', 10, 3 ); diff --git a/wp-includes/ms-functions.php b/wp-includes/ms-functions.php index 8693588ea..5c17cd0dc 100644 --- a/wp-includes/ms-functions.php +++ b/wp-includes/ms-functions.php @@ -1747,15 +1747,6 @@ function upload_is_file_too_big( $upload ) { return $upload; } -function wordpressmu_authenticate_siteadmin( $user, $password = '' ) { - if ( is_super_admin( $user->user_login ) == false && ( $primary_blog = get_usermeta( $user->user_id, "primary_blog" ) ) ) { - $details = get_blog_details( $primary_blog ); - if ( is_object( $details ) && $details->spam == 1 ) - return new WP_Error('blog_suspended', __('Blog Suspended.')); - } - return $user; -} - function wordpressmu_wp_mail_from( $email ) { if ( strpos( $email, 'wordpress@' ) !== false ) $email = get_option( 'admin_email' ); diff --git a/wp-includes/user.php b/wp-includes/user.php index bc84943cd..4609f0eaf 100644 --- a/wp-includes/user.php +++ b/wp-includes/user.php @@ -88,8 +88,18 @@ function wp_authenticate_username_password($user, $username, $password) { if ( !$userdata ) return new WP_Error('invalid_username', sprintf(__('ERROR: Invalid username. Lost your password?'), site_url('wp-login.php?action=lostpassword', 'login'))); - if ( is_multisite() && (1 == $userdata->spam) ) - return new WP_Error('invalid_username', __('ERROR: Your account has been marked as a spammer.')); + if ( is_multisite() ) { + // Is user marked as spam? + if ( 1 == $userdata->spam) + return new WP_Error('invalid_username', __('ERROR: Your account has been marked as a spammer.')); + + // Is a user's blog marked as spam? + if ( !is_super_admin( $userdata->ID ) && isset($userdata->primary_blog) ) { + $details = get_blog_details( $userdata->primary_blog ); + if ( is_object( $details ) && $details->spam == 1 ) + return new WP_Error('blog_suspended', __('Blog Suspended.')); + } + } $userdata = apply_filters('wp_authenticate_user', $userdata, $password); if ( is_wp_error($userdata) )