Ticket #16484: 16484.2.diff

File 16484.2.diff, 3.4 KB (added by MikeHansenMe, 8 months ago)

this patch allows you to log in as 0

  • wp-includes/capabilities.php

     
    526526                        $value = trim( $value ); 
    527527                } 
    528528 
    529                 if ( !$value ) 
     529                if ( !isset($value) ) 
    530530                        return false; 
    531531 
    532532                switch ( $field ) { 
  • wp-includes/user.php

     
    2424 */ 
    2525function wp_signon( $credentials = '', $secure_cookie = '' ) { 
    2626        if ( empty($credentials) ) { 
    27                 if ( ! empty($_POST['log']) ) 
     27                if ( isset($_POST['log']) ) 
    2828                        $credentials['user_login'] = $_POST['log']; 
    2929                if ( ! empty($_POST['pwd']) ) 
    3030                        $credentials['user_password'] = $_POST['pwd']; 
    3131                if ( ! empty($_POST['rememberme']) ) 
    3232                        $credentials['remember'] = $_POST['rememberme']; 
    3333        } 
    34  
    3534        if ( !empty($credentials['remember']) ) 
    3635                $credentials['remember'] = true; 
    3736        else 
     
    5150        add_filter('authenticate', 'wp_authenticate_cookie', 30, 3); 
    5251 
    5352        $user = wp_authenticate($credentials['user_login'], $credentials['user_password']); 
    54  
    5553        if ( is_wp_error($user) ) { 
    5654                if ( $user->get_error_codes() == array('empty_username', 'empty_password') ) { 
    5755                        $user = new WP_Error('', ''); 
     
    7169add_filter('authenticate', 'wp_authenticate_username_password', 20, 3); 
    7270function wp_authenticate_username_password($user, $username, $password) { 
    7371        if ( is_a($user, 'WP_User') ) { return $user; } 
    74  
    75         if ( empty($username) || empty($password) ) { 
     72        if ( !isset($username) || empty($password) ) { 
    7673                $error = new WP_Error(); 
    7774 
    78                 if ( empty($username) ) 
     75                if ( !isset($username) ) 
    7976                        $error->add('empty_username', __('<strong>ERROR</strong>: The username field is empty.')); 
    8077 
    8178                if ( empty($password) ) 
     
    8380 
    8481                return $error; 
    8582        } 
    86  
    8783        $user = get_user_by('login', $username); 
    88  
    8984        if ( !$user ) 
    9085                return new WP_Error('invalid_username', sprintf(__('<strong>ERROR</strong>: Invalid username. <a href="%s" title="Password Lost and Found">Lost your password</a>?'), wp_lostpassword_url())); 
    9186 
     
    10321027                        $_selected = selected( $user->ID, $selected, false ); 
    10331028                        if ( $_selected ) 
    10341029                                $found_selected = true; 
    1035                         $display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')'; 
     1030                        $display = isset($user->$show) && strlen($user->$show) ? $user->$show : '('. $user->user_login . ')'; 
    10361031                        $output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n"; 
    10371032                } 
    10381033 
    10391034                if ( $include_selected && ! $found_selected && ( $selected > 0 ) ) { 
    10401035                        $user = get_userdata( $selected ); 
    10411036                        $_selected = selected( $user->ID, $selected, false ); 
    1042                         $display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')'; 
     1037                        $display = isset($user->$show) && strlen($user->$show) ? $user->$show : '('. $user->user_login . ')'; 
    10431038                        $output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n"; 
    10441039                } 
    10451040 
     
    12791274        //Remove any non-printable chars from the login string to see if we have ended up with an empty username 
    12801275        $user_login = trim($user_login); 
    12811276 
    1282         if ( empty($user_login) ) 
     1277        if ( !isset($user_login) || !strlen($user_login) ) 
    12831278                return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') ); 
    12841279 
    12851280        if ( !$update && username_exists( $user_login ) )