diff --git src/wp-includes/user.php src/wp-includes/user.php
index 32b0ec7..2dfb3db 100644
|
|
function register_new_user( $user_login, $user_email ) { |
2136 | 2136 | $errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) ); |
2137 | 2137 | } |
2138 | 2138 | |
| 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 | |
2139 | 2146 | /** |
2140 | 2147 | * Fires when submitting registration form data, before the user is created. |
2141 | 2148 | * |
diff --git tests/phpunit/tests/user.php tests/phpunit/tests/user.php
index 3644ffc..df4ef7d 100644
|
|
class Tests_User extends WP_UnitTestCase { |
612 | 612 | * @dataProvider _illegal_user_logins_data |
613 | 613 | */ |
614 | 614 | function test_illegal_user_logins_single( $user_login ) { |
| 615 | $user_email = 'testuser@example.com'; |
| 616 | |
615 | 617 | $user_data = array( |
616 | 618 | 'user_login' => $user_login, |
617 | | 'user_email' => 'testuser@example.com', |
| 619 | 'user_email' => $user_email, |
618 | 620 | 'user_pass' => wp_generate_password(), |
619 | 621 | ); |
620 | 622 | |
621 | 623 | add_filter( 'illegal_user_logins', array( $this, '_illegal_user_logins' ) ); |
622 | 624 | |
| 625 | // Test wp_insert_user() |
623 | 626 | $response = wp_insert_user( $user_data ); |
624 | 627 | $this->assertInstanceOf( 'WP_Error', $response ); |
625 | 628 | $this->assertEquals( 'illegal_user_login', $response->get_error_code() ); |
626 | 629 | |
| 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 | |
627 | 635 | remove_filter( 'illegal_user_logins', array( $this, '_illegal_user_logins' ) ); |
628 | 636 | |
| 637 | // Test wp_insert_user() without illegal login filter |
629 | 638 | $user_id = wp_insert_user( $user_data ); |
630 | 639 | $user = get_user_by( 'id', $user_id ); |
631 | 640 | $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 ); |
632 | 647 | } |
633 | 648 | |
634 | 649 | /** |