Make WordPress Core

Ticket #40497: 40497.02.patch

File 40497.02.patch, 1.8 KB (added by DJPaul, 7 years ago)
  • src/wp-includes/user.php

     
    14171417                        return new WP_Error( 'invalid_user_id', __( 'Invalid user ID.' ) );
    14181418                }
    14191419
     1420                $userdata['user_login'] = $old_user_data->user_login;
     1421
    14201422                // hashed in wp_update_user(), plaintext if called directly
    14211423                $user_pass = ! empty( $userdata['user_pass'] ) ? $userdata['user_pass'] : $old_user_data->user_pass;
    14221424        } else {
     
    14421444        $user_login = trim( $pre_user_login );
    14431445
    14441446        // user_login must be between 0 and 60 characters.
    1445         if ( empty( $user_login ) ) {
     1447        if ( empty( $user_login ) && ! $update ) {
    14461448                return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );
    14471449        } elseif ( mb_strlen( $user_login ) > 60 ) {
    14481450                return new WP_Error( 'user_login_too_long', __( 'Username may not be longer than 60 characters.' ) );
  • tests/phpunit/tests/user/wpInsertUser.php

     
     1<?php
     2
     3/**
     4 * @group user
     5 */
     6class Tests_User_InsertUser extends WP_UnitTestCase {
     7
     8        /**
     9         * @ticket 40497
     10         */
     11        public function test_wp_insert_user_can_updating_existing_user() {
     12                $id = self::factory()->user->create( array(
     13                        'user_nicename' => 'oldname',
     14                ) );
     15
     16                $user = get_user_by( 'ID', $id );
     17                $this->assertSame( $user->user_nicename, 'oldname' );
     18
     19                wp_insert_user( array(
     20                        'ID'            => $id,
     21                        'user_nicename' => 'newname',
     22                ) );
     23
     24                $user = get_user_by( 'ID', $id );
     25                $this->assertSame( $user->user_nicename, 'newname' );
     26        }
     27}