X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/5aa86a9053fb0fa15846bb60aac2fb8fdfff524a..7f1521bf193b382565eb753043c161f4cb3fcda7:/wp-admin/network/site-users.php diff --git a/wp-admin/network/site-users.php b/wp-admin/network/site-users.php index 743e9053..57a189b7 100644 --- a/wp-admin/network/site-users.php +++ b/wp-admin/network/site-users.php @@ -8,7 +8,7 @@ */ /** Load WordPress Administration Bootstrap */ -require_once( './admin.php' ); +require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! is_multisite() ) wp_die( __( 'Multisite support is not enabled.' ) ); @@ -32,46 +32,39 @@ get_current_screen()->add_help_tab( array( get_current_screen()->set_help_sidebar( '

' . __('For more information:') . '

' . - '

' . __('Documentation on Site Management') . '

' . - '

' . __('Support Forums') . '

' + '

' . __('Documentation on Site Management') . '

' . + '

' . __('Support Forums') . '

' ); $_SERVER['REQUEST_URI'] = remove_query_arg( 'update', $_SERVER['REQUEST_URI'] ); $referer = remove_query_arg( 'update', wp_get_referer() ); +if ( ! empty( $_REQUEST['paged'] ) ) { + $referer = add_query_arg( 'paged', (int) $_REQUEST['paged'], $referer ); +} + $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; if ( ! $id ) wp_die( __('Invalid site ID.') ); $details = get_blog_details( $id ); -if ( !can_edit_network( $details->site_id ) ) - wp_die( __( 'You do not have permission to access this page.' ) ); +if ( ! can_edit_network( $details->site_id ) ) + wp_die( __( 'You do not have permission to access this page.' ), 403 ); $is_main_site = is_main_site( $id ); -// get blog prefix -$blog_prefix = $wpdb->get_blog_prefix( $id ); - -// @todo This is a hack. Eventually, add API to WP_Roles allowing retrieval of roles for a particular blog. -if ( ! empty($wp_roles->use_db) ) { - $editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" ); -} else { - // Roles are stored in memory, not the DB. - $editblog_roles = $wp_roles->roles; -} -$default_role = get_blog_option( $id, 'default_role' ); +switch_to_blog( $id ); $action = $wp_list_table->current_action(); if ( $action ) { - switch_to_blog( $id ); switch ( $action ) { case 'newuser': check_admin_referer( 'add-user', '_wpnonce_add-new-user' ); $user = $_POST['user']; - if ( !is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) { + if ( ! is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) { $update = 'err_new'; } else { $password = wp_generate_password( 12, false); @@ -92,11 +85,10 @@ if ( $action ) { if ( !empty( $_POST['newuser'] ) ) { $update = 'adduser'; $newuser = $_POST['newuser']; - $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) ); - if ( $userid ) { - $user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" ); - if ( $user == false ) - add_user_to_blog( $id, $userid, $_POST['new_role'] ); + $user = get_user_by( 'login', $newuser ); + if ( $user && $user->exists() ) { + if ( ! is_user_member_of_blog( $user->ID, $id ) ) + add_user_to_blog( $id, $user->ID, $_POST['new_role'] ); else $update = 'err_add_member'; } else { @@ -108,7 +100,7 @@ if ( $action ) { break; case 'remove': - if ( !current_user_can('remove_users') ) + if ( ! current_user_can( 'remove_users' ) ) die(__('You can’t remove users.')); check_admin_referer( 'bulk-users' ); @@ -141,9 +133,9 @@ if ( $action ) { // If the user doesn't already belong to the blog, bail. if ( !is_user_member_of_blog( $user_id ) ) - wp_die(__('Cheatin’ uh?')); + wp_die( __( 'Cheatin’ uh?' ), 403 ); - $user = new WP_User( $user_id ); + $user = get_userdata( $user_id ); $user->set_role( $_REQUEST['new_role'] ); } } else { @@ -152,29 +144,44 @@ if ( $action ) { break; } - restore_current_blog(); wp_safe_redirect( add_query_arg( 'update', $update, $referer ) ); exit(); } +restore_current_blog(); + if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) { wp_safe_redirect( $referer ); exit(); } -add_screen_option( 'per_page', array( 'label' => _x( 'Users', 'users per page (screen options)' ) ) ); +add_screen_option( 'per_page' ); $site_url_no_http = preg_replace( '#^http(s)?://#', '', get_blogaddress_by_id( $id ) ); -$title_site_url_linked = sprintf( __('Edit Site: %2$s'), get_blogaddress_by_id( $id ), $site_url_no_http ); -$title = sprintf( __('Edit Site: %s'), $site_url_no_http ); +$title_site_url_linked = sprintf( __( 'Edit Site: %s' ), '' . $site_url_no_http . '' ); +$title = sprintf( __( 'Edit Site: %s' ), $site_url_no_http ); $parent_file = 'sites.php'; $submenu_file = 'sites.php'; -require('../admin-header.php'); ?> +/** + * Filter whether to show the Add Existing User form on the Multisite Users screen. + * + * @since 3.1.0 + * + * @param bool $bool Whether to show the Add Existing User form. Default true. + */ +if ( ! wp_is_large_network( 'users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) ) + wp_enqueue_script( 'user-suggest' ); + +require( ABSPATH . 'wp-admin/admin-header.php' ); ?> + + +
-

$tab ) { if ( isset($_GET['update']) ) : switch($_GET['update']) { case 'adduser': - echo '

' . __( 'User added.' ) . '

'; + echo '

' . __( 'User added.' ) . '

'; break; case 'err_add_member': - echo '

' . __( 'User is already a member of this site.' ) . '

'; + echo '

' . __( 'User is already a member of this site.' ) . '

'; break; case 'err_add_notfound': - echo '

' . __( 'Enter the username of an existing user.' ) . '

'; + echo '

' . __( 'Enter the username of an existing user.' ) . '

'; break; case 'promote': - echo '

' . __( 'Changed roles.' ) . '

'; + echo '

' . __( 'Changed roles.' ) . '

'; break; case 'err_promote': - echo '

' . __( 'Select a user to change role.' ) . '

'; + echo '

' . __( 'Select a user to change role.' ) . '

'; break; case 'remove': - echo '

' . __( 'User removed from this site.' ) . '

'; + echo '

' . __( 'User removed from this site.' ) . '

'; break; case 'err_remove': - echo '

' . __( 'Select a user to remove.' ) . '

'; + echo '

' . __( 'Select a user to remove.' ) . '

'; break; case 'newuser': - echo '

' . __( 'User created.' ) . '

'; + echo '

' . __( 'User created.' ) . '

'; break; case 'err_new': - echo '

' . __( 'Enter the username and email.' ) . '

'; + echo '

' . __( 'Enter the username and email.' ) . '

'; break; case 'err_new_dup': - echo '

' . __( 'Duplicated username or email address.' ) . '

'; + echo '

' . __( 'Duplicated username or email address.' ) . '

'; break; } endif; ?> -
+ search_box( __( 'Search Users' ), 'user' ); ?>
@@ -234,75 +241,67 @@ endif; ?> views(); ?>
- display(); ?>
- + -

- -

- -

- -
+/** This filter is documented in wp-admin/network/site-users.php */ +if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) ) : ?> +

- - - + + - - +
- 'submit-add-existing-user' ) ); ?> + 'submit-add-existing-user' ) ); ?>
- -
+ +

- - - + + - - + + - - + @@ -310,9 +309,9 @@ endif; ?>
- 'submit-add-user' ) ); ?> + 'submit-add-user' ) ); ?>