WordPress.org

Make WordPress Core

Changeset 35101


Ignore:
Timestamp:
10/13/2015 01:31:53 AM (5 years ago)
Author:
boonebgorges
Message:

Don't match partial roles in WP_User_Query.

Because 'role=ocean90' shouldn't match 'role=bocean901'.

Props bocean901, ocean90.
Fixes #22212.

Location:
trunk
Files:
2 edited

Legend:

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

    r34959 r35101  
    305305                    $roles_clauses[] = array(
    306306                        'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
    307                         'value'   => $role,
     307                        'value'   => '"' . $role . '"',
    308308                        'compare' => 'LIKE',
    309309                    );
     
    318318                    $role__in_clauses[] = array(
    319319                        'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
    320                         'value'   => $role,
     320                        'value'   => '"' . $role . '"',
    321321                        'compare' => 'LIKE',
    322322                    );
     
    331331                    $role__not_in_clauses[] = array(
    332332                        'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
    333                         'value'   => $role,
     333                        'value'   => '"' . $role . '"',
    334334                        'compare' => 'NOT LIKE',
    335335                    );
  • trunk/tests/phpunit/tests/user/query.php

    r34959 r35101  
    959959     * @ticket 22212
    960960     */
     961    public function test_get_single_role_by_string_which_is_similar() {
     962        $editors = $this->factory->user->create_many( 2, array(
     963            'role' => 'editor',
     964        ) );
     965
     966        $another_editor = $this->factory->user->create( array(
     967            'role' => 'another-editor',
     968        ) );
     969
     970        $users = get_users( array(
     971            'role' => 'editor',
     972            'fields' => 'ids',
     973        ) );
     974
     975        $this->assertEqualSets( $editors, $users );
     976    }
     977
     978
     979    /**
     980     * @ticket 22212
     981     */
    961982    public function test_get_single_role_by_array() {
    962983        $this->factory->user->create_many( 2, array(
Note: See TracChangeset for help on using the changeset viewer.