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 018654bdd2..699e1a19f4 100644
|
a
|
b
|
class WP_Users_List_Table extends WP_List_Table { |
| 101 | 101 | 'search' => $usersearch, |
| 102 | 102 | 'fields' => 'all_with_meta', |
| 103 | 103 | ); |
| | 104 | } elseif ( '-1' === $role && current_user_can( 'manage_network_users' ) ) { |
| | 105 | $args = array( |
| | 106 | 'number' => $users_per_page, |
| | 107 | 'offset' => ( $paged - 1 ) * $users_per_page, |
| | 108 | 'blog_id' => 0, |
| | 109 | 'search' => $usersearch, |
| | 110 | 'fields' => 'all_with_meta' |
| | 111 | ); |
| 104 | 112 | } else { |
| 105 | 113 | $args = array( |
| 106 | 114 | 'number' => $users_per_page, |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 115 | 123 | $args['search'] = '*' . $args['search'] . '*'; |
| 116 | 124 | } |
| 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 | |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 251 | 259 | $role_links['none'] = "<a href='" . esc_url( add_query_arg( 'role', 'none', $url ) ) . "'$current_link_attributes>$name</a>"; |
| 252 | 260 | } |
| 253 | 261 | |
| | 262 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 263 | $current_link_attributes = ''; |
| | 264 | |
| | 265 | if ( '-1' === $role ) { |
| | 266 | $current_link_attributes = ' class="current" aria-current="page"'; |
| | 267 | } |
| | 268 | |
| | 269 | $name = __( 'All Network Users' ); |
| | 270 | |
| | 271 | $role_links['all_network'] = "<a href='" . esc_url( add_query_arg( 'role', '-1', $url ) ) . "'$current_link_attributes>$name</a>"; |
| | 272 | } |
| | 273 | |
| 254 | 274 | return $role_links; |
| 255 | 275 | } |
| 256 | 276 | |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 454 | 474 | if ( ! is_multisite() && get_current_user_id() != $user_object->ID && current_user_can( 'delete_user', $user_object->ID ) ) { |
| 455 | 475 | $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( "users.php?action=delete&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Delete' ) . '</a>'; |
| 456 | 476 | } |
| 457 | | if ( is_multisite() && current_user_can( 'remove_user', $user_object->ID ) ) { |
| | 477 | |
| | 478 | 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 ) ) { |
| 458 | 479 | $actions['remove'] = "<a class='submitdelete' href='" . wp_nonce_url( $url . "action=remove&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Remove' ) . '</a>'; |
| 459 | 480 | } |
| 460 | 481 | |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 551 | 572 | $r .= "<a href='" . esc_url( "mailto:$email" ) . "'>$email</a>"; |
| 552 | 573 | break; |
| 553 | 574 | case 'role': |
| 554 | | $r .= esc_html( $roles_list ); |
| | 575 | if ( empty( $roles_list ) ) { |
| | 576 | $r .= sprintf( |
| | 577 | '<span aria-hidden="true">—</span><span class="screen-reader-text">%s</span>', |
| | 578 | __( 'User is not a member of this site' ) |
| | 579 | ); |
| | 580 | } else { |
| | 581 | $r .= esc_html( $roles_list ); |
| | 582 | } |
| 555 | 583 | break; |
| 556 | 584 | case 'posts': |
| 557 | 585 | if ( $numposts > 0 ) { |
| … |
… |
class WP_Users_List_Table extends WP_List_Table { |
| 623 | 651 | } |
| 624 | 652 | } |
| 625 | 653 | |
| 626 | | if ( empty( $role_list ) ) { |
| | 654 | if ( empty( $role_list ) && is_user_member_of_blog( $user_object->ID, $this->site_id ) ) { |
| 627 | 655 | $role_list['none'] = _x( 'None', 'no user roles' ); |
| 628 | 656 | } |
| 629 | 657 | |
diff --git a/src/wp-admin/network/site-users.php b/src/wp-admin/network/site-users.php
index cb00cab973..7d64fec5b6 100644
|
a
|
b
|
if ( $action ) { |
| 156 | 156 | foreach ( $userids as $user_id ) { |
| 157 | 157 | $user_id = (int) $user_id; |
| 158 | 158 | |
| 159 | | // If the user doesn't already belong to the blog, bail. |
| | 159 | // If the user doesn't already belong to the blog: |
| 160 | 160 | if ( ! is_user_member_of_blog( $user_id ) ) { |
| 161 | | wp_die( |
| 162 | | '<h1>' . __( 'Something went wrong.' ) . '</h1>' . |
| 163 | | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| 164 | | 403 |
| 165 | | ); |
| | 161 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 162 | add_existing_user_to_blog( array( |
| | 163 | 'user_id' => $user_id, |
| | 164 | 'role' => $role, |
| | 165 | ) ); |
| | 166 | } else { |
| | 167 | wp_die( |
| | 168 | '<h1>' . __( 'Something went wrong.' ) . '</h1>' . |
| | 169 | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| | 170 | 403 |
| | 171 | ); |
| | 172 | } |
| | 173 | } else { |
| | 174 | $user = get_userdata( $user_id ); |
| | 175 | $user->set_role( $role ); |
| 166 | 176 | } |
| 167 | | |
| 168 | | $user = get_userdata( $user_id ); |
| 169 | | $user->set_role( $role ); |
| 170 | 177 | } |
| 171 | 178 | } else { |
| 172 | 179 | $update = 'err_promote'; |
| … |
… |
endif; |
| 275 | 282 | <form class="search-form" method="get"> |
| 276 | 283 | <?php $wp_list_table->search_box( __( 'Search Users' ), 'user' ); ?> |
| 277 | 284 | <input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" /> |
| | 285 | <?php if ( isset( $_GET['role'] ) && '-1' === $_GET['role'] ) { ?> |
| | 286 | <input type="hidden" name="role" value="-1" /> |
| | 287 | <?php } ?> |
| 278 | 288 | </form> |
| 279 | 289 | |
| 280 | 290 | <?php $wp_list_table->views(); ?> |
diff --git a/src/wp-admin/users.php b/src/wp-admin/users.php
index 04164d7179..d773a5c1ec 100644
|
a
|
b
|
switch ( $wp_list_table->current_action() ) { |
| 139 | 139 | continue; |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | | // If the user doesn't already belong to the blog, bail. |
| 143 | | if ( is_multisite() && ! is_user_member_of_blog( $id ) ) { |
| 144 | | wp_die( |
| 145 | | '<h1>' . __( 'Something went wrong.' ) . '</h1>' . |
| 146 | | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| 147 | | 403 |
| 148 | | ); |
| | 142 | // If the user doesn't already belong to the blog: |
| | 143 | if ( ! is_user_member_of_blog( $id ) ) { |
| | 144 | if ( current_user_can( 'manage_network_users' ) ) { |
| | 145 | add_existing_user_to_blog( array( |
| | 146 | 'user_id' => $id, |
| | 147 | 'role' => $role, |
| | 148 | ) ); |
| | 149 | } else { |
| | 150 | wp_die( |
| | 151 | '<h1>' . __( 'Something went wrong.' ) . '</h1>' . |
| | 152 | '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', |
| | 153 | 403 |
| | 154 | ); |
| | 155 | } |
| | 156 | } else { |
| | 157 | $user = get_userdata( $id ); |
| | 158 | $user->set_role( $role ); |
| 149 | 159 | } |
| 150 | | |
| 151 | | $user = get_userdata( $id ); |
| 152 | | $user->set_role( $role ); |
| 153 | 160 | } |
| 154 | 161 | |
| 155 | 162 | wp_redirect( add_query_arg( 'update', $update, $redirect ) ); |