diff --git a/src/wp-admin/includes/class-wp-users-list-table.php b/src/wp-admin/includes/class-wp-users-list-table.php
index 8c80e9070d..644925748b 100644
|
a
|
b
|
class WP_Users_List_Table extends WP_List_Table { |
| 102 | 102 | 'search' => $usersearch, |
| 103 | 103 | 'fields' => 'all_with_meta' |
| 104 | 104 | ); |
| | 105 | } elseif ( '-1' === $role && current_user_can( 'manage_network_users' ) ) { |
| | 106 | $args = array( |
| | 107 | 'number' => $users_per_page, |
| | 108 | 'offset' => ( $paged-1 ) * $users_per_page, |
| | 109 | 'blog_id' => 0, |
| | 110 | 'search' => $usersearch, |
| | 111 | 'fields' => 'all_with_meta' |
| | 112 | ); |
| 105 | 113 | } else { |
| 106 | 114 | $args = array( |
| 107 | 115 | 'number' => $users_per_page, |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 115 | 123 | if ( '' !== $args['search'] ) |
| 116 | 124 | $args['search'] = '*' . $args['search'] . '*'; |
| 117 | 125 | |
| 118 | | if ( $this->is_site_users ) |
| | 126 | if ( $this->is_site_users && ! isset( $args['blog_id'] ) ) |
| 119 | 127 | $args['blog_id'] = $this->site_id; |
| 120 | 128 | |
| 121 | 129 | if ( isset( $_REQUEST['orderby'] ) ) |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 222 | 230 | |
| 223 | 231 | } |
| 224 | 232 | |
| | 233 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 234 | $class = ( '-1' === $role ) ? ' class="current"' : ''; |
| | 235 | $name = __( 'All Network Users' ); |
| | 236 | $role_links['all_network'] = "<a href='" . esc_url( add_query_arg( 'role', '-1', $url ) ) . "'$class>$name</a>"; |
| | 237 | } |
| | 238 | |
| 225 | 239 | return $role_links; |
| 226 | 240 | } |
| 227 | 241 | |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 357 | 371 | $post_counts = count_many_users_posts( array_keys( $this->items ) ); |
| 358 | 372 | |
| 359 | 373 | foreach ( $this->items as $userid => $user_object ) { |
| 360 | | if ( is_multisite() && empty( $user_object->allcaps ) ) |
| 361 | | continue; |
| 362 | | |
| 363 | 374 | echo "\n\t" . $this->single_row( $user_object, '', '', isset( $post_counts ) ? $post_counts[ $userid ] : 0 ); |
| 364 | 375 | } |
| 365 | 376 | } |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 410 | 421 | |
| 411 | 422 | if ( !is_multisite() && get_current_user_id() != $user_object->ID && current_user_can( 'delete_user', $user_object->ID ) ) |
| 412 | 423 | $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( "users.php?action=delete&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Delete' ) . "</a>"; |
| 413 | | if ( is_multisite() && get_current_user_id() != $user_object->ID && current_user_can( 'remove_user', $user_object->ID ) ) |
| | 424 | if ( is_multisite() && get_current_user_id() != $user_object->ID && current_user_can( 'remove_user', $user_object->ID ) && is_user_member_of_blog( $user_object->ID, $this->site_id ) ) |
| 414 | 425 | $actions['remove'] = "<a class='submitdelete' href='" . wp_nonce_url( $url."action=remove&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Remove' ) . "</a>"; |
| 415 | 426 | |
| 416 | 427 | /** |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 476 | 487 | $r .= "<a href='" . esc_url( "mailto:$email" ) . "'>$email</a>"; |
| 477 | 488 | break; |
| 478 | 489 | case 'role': |
| 479 | | $r .= esc_html( $roles_list ); |
| | 490 | if ( empty( $roles_list ) ) { |
| | 491 | $r .= '<span aria-hidden="true">—</span><span class="screen-reader-text">' . __( 'User is not a member of this site' ) . '</span>'; |
| | 492 | } else { |
| | 493 | $r .= esc_html( $roles_list ); |
| | 494 | } |
| 480 | 495 | break; |
| 481 | 496 | case 'posts': |
| 482 | 497 | if ( $numposts > 0 ) { |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 544 | 559 | } |
| 545 | 560 | } |
| 546 | 561 | |
| 547 | | if ( empty( $role_list ) ) { |
| | 562 | if ( is_user_member_of_blog( $user_object->ID, $this->site_id ) && empty( $role_list ) ) { |
| 548 | 563 | $role_list['none'] = _x( 'None', 'no user roles' ); |
| 549 | 564 | } |
| 550 | 565 | |
diff --git a/src/wp-admin/network/site-users.php b/src/wp-admin/network/site-users.php
index fcd1a863d0..58cf07428c 100644
|
a
|
b
|
if ( $action ) { |
| 148 | 148 | foreach ( $userids as $user_id ) { |
| 149 | 149 | $user_id = (int) $user_id; |
| 150 | 150 | |
| 151 | | // If the user doesn't already belong to the blog, bail. |
| | 151 | // If the user doesn't already belong to the blog: |
| 152 | 152 | if ( ! is_user_member_of_blog( $user_id ) ) { |
| 153 | | wp_die( |
| 154 | | '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . |
| 155 | | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| 156 | | 403 |
| 157 | | ); |
| | 153 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 154 | add_existing_user_to_blog( array( |
| | 155 | 'user_id' => $user_id, |
| | 156 | 'role' => $_REQUEST['new_role'], |
| | 157 | ) ); |
| | 158 | } else { |
| | 159 | wp_die( |
| | 160 | '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . |
| | 161 | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| | 162 | 403 |
| | 163 | ); |
| | 164 | } |
| | 165 | } else { |
| | 166 | $user = get_userdata( $user_id ); |
| | 167 | $user->set_role( $_REQUEST['new_role'] ); |
| 158 | 168 | } |
| 159 | 169 | |
| 160 | | $user = get_userdata( $user_id ); |
| 161 | | $user->set_role( $_REQUEST['new_role'] ); |
| 162 | 170 | } |
| 163 | 171 | } else { |
| 164 | 172 | $update = 'err_promote'; |
| … |
… |
endif; ?> |
| 260 | 268 | <form class="search-form" method="get"> |
| 261 | 269 | <?php $wp_list_table->search_box( __( 'Search Users' ), 'user' ); ?> |
| 262 | 270 | <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" /> |
| | 271 | <?php if ( isset( $_GET['role'] ) && '-1' === $_GET['role'] ) { ?> |
| | 272 | <input type="hidden" name="role" value="-1" /> |
| | 273 | <?php } ?> |
| 263 | 274 | </form> |
| 264 | 275 | |
| 265 | 276 | <?php $wp_list_table->views(); ?> |
diff --git a/src/wp-admin/users.php b/src/wp-admin/users.php
index 087d93f1b7..0da39d7b68 100644
|
a
|
b
|
case 'promote': |
| 127 | 127 | continue; |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | | // If the user doesn't already belong to the blog, bail. |
| | 130 | // If the user doesn't already belong to the blog: |
| 131 | 131 | if ( is_multisite() && !is_user_member_of_blog( $id ) ) { |
| 132 | | wp_die( |
| 133 | | '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . |
| 134 | | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| 135 | | 403 |
| 136 | | ); |
| | 132 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 133 | add_existing_user_to_blog( array( |
| | 134 | 'user_id' => $id, |
| | 135 | 'role' => $role, |
| | 136 | ) ); |
| | 137 | } else { |
| | 138 | wp_die( |
| | 139 | '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . |
| | 140 | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| | 141 | 403 |
| | 142 | ); |
| | 143 | } |
| | 144 | } else { |
| | 145 | $user = get_userdata( $id ); |
| | 146 | $user->set_role( $role ); |
| 137 | 147 | } |
| 138 | 148 | |
| 139 | | $user = get_userdata( $id ); |
| 140 | | $user->set_role( $role ); |
| 141 | 149 | } |
| 142 | 150 | |
| 143 | 151 | wp_redirect(add_query_arg('update', $update, $redirect)); |