Make WordPress Core

Changeset 55584


Ignore:
Timestamp:
03/23/2023 01:52:25 PM (3 years ago)
Author:
audrasjb
Message:

Login and Registration: Revert [55358] and [55360].

This reverts the changes implemented in [55358] and [55360].

Changeset [55358] was committed to prevent login name collision when one user registers with the email address user@example.com and a second user tries to register with the username user@example.com. However, it also introduced a potential backward compatibility issues for plugins that use wp_update_user(). When updating an existing user, it throws an existing_user_email_as_login error if the email address is also used for the user login, due to the code introduced in [55358].

This changeset removes the new scenario added in [55358] and [55360], restoring the wp_insert_user() function back to its previous state.

Props polevaultweb, audrasjb, costdev, peterwilsoncc, hellofromTonya, SergeyBiryukov, azaozz.
See #57967, #57394.

Location:
trunk
Files:
2 edited

Legend:

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

    r55414 r55584  
    21242124        }
    21252125
    2126         // Username must be unique.
    21272126        if ( ! $update && username_exists( $user_login ) ) {
    21282127                return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) );
    2129         }
    2130 
    2131         // Username must not match an existing user email.
    2132         if ( email_exists( $user_login ) ) {
    2133                 return new WP_Error( 'existing_user_email_as_login', __( 'Sorry, that username is not available.' ) );
    21342128        }
    21352129
     
    33473341        } elseif ( username_exists( $sanitized_user_login ) ) {
    33483342                $errors->add( 'username_exists', __( '<strong>Error:</strong> This username is already registered. Please choose another one.' ) );
    3349         } elseif ( email_exists( $sanitized_user_login ) ) {
    3350                 $errors->add( 'username_exists_as_email', __( '<strong>Error:</strong> This username is not available. Please choose another one.' ) );
    33513343        } else {
    33523344                /** This filter is documented in wp-includes/user.php */
  • trunk/tests/phpunit/tests/user.php

    r55360 r55584  
    899899
    900900        /**
    901          * @ticket 57394
    902          */
    903         public function test_wp_insert_user_should_reject_user_login_that_matches_existing_user_email() {
    904                 $existing_email = get_option( 'admin_email' );
    905                 $user_id        = wp_insert_user(
    906                         array(
    907                                 'user_login'    => $existing_email,
    908                                 'user_email'    => 'whatever@example.com',
    909                                 'user_pass'     => 'whatever',
    910                                 'user_nicename' => 'whatever',
    911                         )
    912                 );
    913 
    914                 $this->assertWPError( $user_id );
    915                 $this->assertSame( 'existing_user_email_as_login', $user_id->get_error_code() );
    916         }
    917 
    918         /**
    919901         * @ticket 33793
    920902         */
Note: See TracChangeset for help on using the changeset viewer.