WordPress.org

Make WordPress Core

Ticket #10453: plugin-auth-fix.php.diff

File plugin-auth-fix.php.diff, 1.8 KB (added by miqrogroove, 6 years ago)

renamed file by wnorris - for visibility

  • wp-login.php

     
    9595                        } 
    9696                } 
    9797                if ( !empty($errors) ) 
    98                         echo '<div id="login_error">' . apply_filters('login_errors', $errors) . "</div>\n"; 
     98                        echo '<div id="login_error">' . apply_filters('login_errors', $errors, $wp_error) . "</div>\n"; 
    9999                if ( !empty($messages) ) 
    100                         echo '<p class="message">' . apply_filters('login_messages', $messages) . "</p>\n"; 
     100                        echo '<p class="message">' . apply_filters('login_messages', $messages, $wp_error) . "</p>\n"; 
    101101        } 
    102102} // End of login_header() 
    103103 
  • wp-includes/user.php

     
    5151        $user = wp_authenticate($credentials['user_login'], $credentials['user_password']); 
    5252 
    5353        if ( is_wp_error($user) ) { 
    54                 if ( $user->get_error_codes() == array('empty_username', 'empty_password') ) { 
    55                         $user = new WP_Error('', ''); 
     54                $error_codes = $user->get_error_codes(); 
     55                // if both username and password are empty, don't bother showing those error messages 
     56                if ( in_array('empty_username', $error_codes) && in_array('empty_password', $error_codes) ) { 
     57                        unset($user->errors['empty_username']); 
     58                        unset($user->error_data['empty_username']); 
     59                        unset($user->errors['empty_password']); 
     60                        unset($user->error_data['empty_password']); 
    5661                } 
    5762 
    5863                return $user; 
     
    7277        if ( is_a($user, 'WP_User') ) { return $user; } 
    7378 
    7479        if ( empty($username) || empty($password) ) { 
    75                 $error = new WP_Error(); 
     80                if ( is_wp_error($user) ) { 
     81                        $error = $user; 
     82                } else { 
     83                        $error = new WP_Error(); 
     84                } 
    7685 
    7786                if ( empty($username) ) 
    7887                        $error->add('empty_username', __('<strong>ERROR</strong>: The username field is empty.'));