diff --git src/wp-admin/network/site-users.php src/wp-admin/network/site-users.php
index a3857b7..526c393 100644
|
|
if ( $action ) { |
145 | 145 | if ( isset( $_REQUEST['users'] ) ) { |
146 | 146 | $userids = $_REQUEST['users']; |
147 | 147 | $update = 'promote'; |
| 148 | $blog_roles = array_keys( $editable_roles ); |
148 | 149 | foreach ( $userids as $user_id ) { |
149 | 150 | $user_id = (int) $user_id; |
150 | 151 | |
… |
… |
if ( $action ) { |
158 | 159 | } |
159 | 160 | |
160 | 161 | $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'] ); |
162 | 172 | } |
163 | 173 | } else { |
164 | 174 | $update = 'err_promote'; |
diff --git src/wp-admin/users.php src/wp-admin/users.php
index 194ced9..c5a35ae 100644
|
|
case 'promote': |
115 | 115 | |
116 | 116 | $userids = $_REQUEST['users']; |
117 | 117 | $update = 'promote'; |
| 118 | $blog_roles = array_keys( $editable_roles ); |
118 | 119 | foreach ( $userids as $id ) { |
119 | 120 | $id = (int) $id; |
120 | 121 | |
… |
… |
case 'promote': |
137 | 138 | } |
138 | 139 | |
139 | 140 | $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'] ); |
141 | 151 | } |
142 | 152 | |
143 | 153 | wp_redirect(add_query_arg('update', $update, $redirect)); |