WordPress.org

Make WordPress Core

Ticket #17924: 17924.08.patch

File 17924.08.patch, 1.7 KB (added by netweb, 3 years ago)
  • src/wp-admin/network/site-users.php

    diff --git src/wp-admin/network/site-users.php src/wp-admin/network/site-users.php
    index a3857b7..526c393 100644
    if ( $action ) { 
    145145                        if ( isset( $_REQUEST['users'] ) ) {
    146146                                $userids = $_REQUEST['users'];
    147147                                $update = 'promote';
     148                                $blog_roles = array_keys( $editable_roles );
    148149                                foreach ( $userids as $user_id ) {
    149150                                        $user_id = (int) $user_id;
    150151
    if ( $action ) { 
    158159                                        }
    159160
    160161                                        $user = get_userdata( $user_id );
    161                                         $user->set_role( $_REQUEST['new_role'] );
     162
     163                                        // Remove any blog roles for this user
     164                                        foreach ( $blog_roles as $blog_role ) {
     165                                                if ( $user->has_cap( $blog_role ) ) {
     166                                                        $user->remove_role( $blog_role );
     167                                                }
     168                                        }
     169
     170                                        // Add  back the role being bulk-set
     171                                        $user->add_role( $_REQUEST['new_role'] );
    162172                                }
    163173                        } else {
    164174                                $update = 'err_promote';
  • src/wp-admin/users.php

    diff --git src/wp-admin/users.php src/wp-admin/users.php
    index 194ced9..c5a35ae 100644
    case 'promote': 
    115115
    116116        $userids = $_REQUEST['users'];
    117117        $update = 'promote';
     118        $blog_roles = array_keys( $editable_roles );
    118119        foreach ( $userids as $id ) {
    119120                $id = (int) $id;
    120121
    case 'promote': 
    137138                }
    138139
    139140                $user = get_userdata( $id );
    140                 $user->set_role( $role );
     141
     142                // Remove any blog roles for this user
     143                foreach ( $blog_roles as $blog_role ) {
     144                        if ( $user->has_cap( $blog_role ) ) {
     145                                $user->remove_role( $blog_role );
     146                        }
     147                }
     148
     149                // Add  back the role being bulk-set
     150                $user->add_role( $_REQUEST['new_role'] );
    141151        }
    142152
    143153        wp_redirect(add_query_arg('update', $update, $redirect));