Make WordPress Core

Ticket #27317: 27317.diff

File 27317.diff, 2.4 KB (added by markjaquith, 9 years ago)
  • src/wp-includes/user.php

    diff --git src/wp-includes/user.php src/wp-includes/user.php
    index 32b0ec7..2dfb3db 100644
    function register_new_user( $user_login, $user_email ) { 
    21362136                $errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) );
    21372137        }
    21382138
     2139        /** This filter is documented in wp-includes/user.php */
     2140        $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
     2141
     2142        if ( in_array( strtolower( $sanitized_user_login ), array_map( 'strtolower', $illegal_logins ) ) ) {
     2143                $errors->add( 'illegal_user_login', __( '<strong>ERROR</strong>: Sorry, that username is not allowed.' ) );
     2144        }
     2145
    21392146        /**
    21402147         * Fires when submitting registration form data, before the user is created.
    21412148         *
  • tests/phpunit/tests/user.php

    diff --git tests/phpunit/tests/user.php tests/phpunit/tests/user.php
    index 3644ffc..df4ef7d 100644
    class Tests_User extends WP_UnitTestCase { 
    612612         * @dataProvider _illegal_user_logins_data
    613613         */
    614614        function test_illegal_user_logins_single( $user_login ) {
     615                $user_email = 'testuser@example.com';
     616
    615617                $user_data = array(
    616618                        'user_login' => $user_login,
    617                         'user_email' => 'testuser@example.com',
     619                        'user_email' => $user_email,
    618620                        'user_pass'  => wp_generate_password(),
    619621                );
    620622
    621623                add_filter( 'illegal_user_logins', array( $this, '_illegal_user_logins' ) );
    622624
     625                // Test wp_insert_user()
    623626                $response = wp_insert_user( $user_data );
    624627                $this->assertInstanceOf( 'WP_Error', $response );
    625628                $this->assertEquals( 'illegal_user_login', $response->get_error_code() );
    626629
     630                // Test register_new_user()
     631                $response = register_new_user( $user_login, $user_email );
     632                $this->assertInstanceOf( 'WP_Error', $response );
     633                $this->assertEquals( 'illegal_user_login', $response->get_error_code() );
     634
    627635                remove_filter( 'illegal_user_logins', array( $this, '_illegal_user_logins' ) );
    628636
     637                // Test wp_insert_user() without illegal login filter
    629638                $user_id = wp_insert_user( $user_data );
    630639                $user = get_user_by( 'id', $user_id );
    631640                $this->assertInstanceOf( 'WP_User', $user );
     641                wp_delete_user( $user_id );
     642
     643                // Test register_new_user() without illegal login filter
     644                $user_id = register_new_user( $user_login, $user_email );
     645                $user = get_user_by( 'id', $user_id );
     646                $this->assertInstanceOf( 'WP_User', $user );
    632647        }
    633648
    634649        /**