Make WordPress Core

Changeset 36617

Timestamp:
02/22/2016 11:14:27 PM (8 years ago)
Author:
ocean90
Message:

Authentication: Allow users to log in using their email address.

Introduces wp_authenticate_email_password() which is hooked into authenticate after wp_authenticate_username_password().

Props Denis-de-Bernardy, ericlewis, vhomenko, MikeHansenMe, swissspidy, ocean90.
Fixes #9568.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/default-filters.php

    r36341 r36617  
    343343// Default authentication filters
    344344add_filter( 'authenticate', 'wp_authenticate_username_password',  20, 3 );
     345
    345346add_filter( 'authenticate', 'wp_authenticate_spam_check',         99    );
    346347add_filter( 'determine_current_user', 'wp_validate_auth_cookie'          );
  • trunk/src/wp-includes/pluggable.php

    r36588 r36617  
    549549 * @since 2.5.0
    550550 *
    551  * @param string $username User's username.
     551 * @param string $username User's username.
    552552 * @param string $password User's password.
    553553 * @return WP_User|WP_Error WP_User object if the credentials are valid,
     
    576576        // TODO what should the error message be? (Or would these even happen?)
    577577        // Only needed if all authentication handlers fail to return anything.
    578         $user = new WP_Error('authentication_failed', __('<strong>ERROR</strong>: Invalid username or incorrect password.'));
     578        $user = new WP_Error();
    579579    }
    580580
  • trunk/src/wp-includes/user.php

    r36501 r36617  
    164164                __( '<strong>ERROR</strong>: The password you entered for the username %s is incorrect.' ),
    165165                '<strong>' . $username . '</strong>'
     166
     167
     168
     169
     170
     171
     172
     173
     174
     175
     176
     177
     178
     179
     180
     181
     182
     183
     184
     185
     186
     187
     188
     189
     190
     191
     192
     193
     194
     195
     196
     197
     198
     199
     200
     201
     202
     203
     204
     205
     206
     207
     208
     209
     210
     211
     212
     213
     214
     215
     216
     217
     218
     219
     220
     221
     222
     223
     224
     225
     226
     227
     228
     229
     230
     231
     232
     233
     234
     235
     236
     237
    166238            ) .
    167239            ' <a href="' . wp_lostpassword_url() . '">' .
  • trunk/src/wp-login.php

    r36487 r36617  
    530530<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
    531531    <p>
    532         <label for="user_login" ><?php _e('Username or Email:') ?><br />
     532        <label for="user_login" ><?php _e('Username or Email') ?><br />
    533533        <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
    534534    </p>
     
    757757    if ( !empty($_POST['log']) && !force_ssl_admin() ) {
    758758        $user_name = sanitize_user($_POST['log']);
    759         if ( $user = get_user_by('login', $user_name) ) {
     759        $user = get_user_by( 'login', $user_name );
     760
     761        if ( ! $user && strpos( $user_name, '@' ) ) {
     762            $user = get_user_by( 'email', $user_name );
     763        }
     764
     765        if ( $user ) {
    760766            if ( get_user_option('use_ssl', $user->ID) ) {
    761767                $secure_cookie = true;
     
    883889<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
    884890    <p>
    885         <label for="user_login"><?php _e('Username') ?><br />
     891        <label for="user_login"><?php _e('Username') ?><br />
    886892        <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" /></label>
    887893    </p>
  • trunk/tests/phpunit/tests/auth.php

    r35224 r36617  
    312312        $this->assertInstanceOf( 'WP_Error', $check );
    313313    }
     314
     315
     316
     317
     318
     319
     320
     321
     322
     323
     324
     325
     326
     327
     328
     329
     330
    314331}
Note: See TracChangeset for help on using the changeset viewer.