WordPress.org

Make WordPress Core

Ticket #17924: 17924.07.patch

File 17924.07.patch, 1.5 KB (added by johnjamesjacoby, 4 years ago)
  • wp-admin/network/site-users.php

     
    128128                        if ( isset( $_REQUEST['users'] ) ) {
    129129                                $userids = $_REQUEST['users'];
    130130                                $update = 'promote';
     131                                $blog_roles = array_keys( $editable_roles );
    131132                                foreach ( $userids as $user_id ) {
    132133                                        $user_id = (int) $user_id;
    133134
     
    136137                                                wp_die( __( 'Cheatin’ uh?' ), 403 );
    137138
    138139                                        $user = get_userdata( $user_id );
    139                                         $user->set_role( $_REQUEST['new_role'] );
     140
     141                                        // Remove any blog roles for this user
     142                                        foreach ( $blog_roles as $blog_role ) {
     143                                                if ( $user->has_cap( $blog_role ) ) {
     144                                                        $user->remove_role( $blog_role );
     145                                                }
     146                                        }
     147
     148                                        // Add  back the role being bulk-set
     149                                        $user->add_role( $_REQUEST['new_role'] );
    140150                                }
    141151                        } else {
    142152                                $update = 'err_promote';
  • wp-admin/users.php

     
    114114
    115115        $userids = $_REQUEST['users'];
    116116        $update = 'promote';
     117        $blog_roles = array_keys( $editable_roles );
    117118        foreach ( $userids as $id ) {
    118119                $id = (int) $id;
    119120
     
    131132                        wp_die( __( 'Cheatin’ uh?' ), 403 );
    132133
    133134                $user = get_userdata( $id );
    134                 $user->set_role($_REQUEST['new_role']);
     135
     136                // Remove any blog roles for this user
     137                foreach ( $blog_roles as $blog_role ) {
     138                        if ( $user->has_cap( $blog_role ) ) {
     139                                $user->remove_role( $blog_role );
     140                        }
     141                }
     142
     143                // Add  back the role being bulk-set
     144                $user->add_role( $_REQUEST['new_role'] );
    135145        }
    136146