Skip to content

Commit

Permalink
Users: Adjust [45708] to make sure wp_update_user() does not issue …
Browse files Browse the repository at this point in the history
…a `WP_Error` if a single site was previously set up as Multisite and there's still a `spam` field in the user table.

Add a unit test.

Props azaozz, SergeyBiryukov.
Fixes #45747.

git-svn-id: https://develop.svn.wordpress.org/trunk@45874 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
SergeyBiryukov committed Aug 22, 2019
1 parent 7fbabd5 commit 1ba4455
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/wp-includes/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -1665,7 +1665,7 @@ function wp_insert_user( $userdata ) {

$user_activation_key = empty( $userdata['user_activation_key'] ) ? '' : $userdata['user_activation_key'];

if ( isset( $userdata['spam'] ) && ! is_multisite() ) {
if ( ! empty( $userdata['spam'] ) && ! is_multisite() ) {
return new WP_Error( 'no_spam', __( 'Sorry, marking a user as spam is only supported on Multisite.' ) );
}

Expand Down
28 changes: 28 additions & 0 deletions tests/phpunit/tests/user.php
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,34 @@ function test_wp_update_user_should_not_change_password_when_passed_WP_User_inst
$this->assertEquals( $pwd_before, $pwd_after );
}

/**
* @ticket 45747
*/
function test_wp_update_user_should_not_mark_user_as_spam_on_single_site() {
if ( is_multisite() ) {
$this->markTestSkipped( 'This test is intended for single site.' );
}

$u = wp_update_user(
array(
'ID' => self::$contrib_id,
'spam' => '0',
)
);

$this->assertNotWPError( $u );

$u = wp_update_user(
array(
'ID' => self::$contrib_id,
'spam' => '1',
)
);

$this->assertWPError( $u );
$this->assertSame( 'no_spam', $u->get_error_code() );
}

/**
* @ticket 28315
*/
Expand Down

0 comments on commit 1ba4455

Please sign in to comment.