WordPress 4.6.3
[autoinstalls/wordpress.git] / wp-admin / network / user-new.php
index 03dadce8c35e7c06d7f806c841a6b31517802dd6..fae3fcb0039f2ff93d88ac150b8032730013912c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Add Site Administration Screen
+ * Add New User network administration panel.
  *
  * @package WordPress
  * @subpackage Multisite
@@ -8,14 +8,13 @@
  */
 
 /** Load WordPress Administration Bootstrap */
-require_once( './admin.php' );
+require_once( dirname( __FILE__ ) . '/admin.php' );
 
 if ( ! is_multisite() )
        wp_die( __( 'Multisite support is not enabled.' ) );
 
 if ( ! current_user_can('create_users') )
-       wp_die(__('You do not have sufficient permissions to add users to this network.'));
-
+       wp_die(__('Sorry, you are not allowed to add users to this network.'));
 
 get_current_screen()->add_help_tab( array(
        'id'      => 'overview',
@@ -27,32 +26,40 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __('For more information:') . '</strong></p>' .
-       '<p>' . __('<a href="http://codex.wordpress.org/Network_Admin_Users_Screen" target="_blank">Documentation on Network Users</a>') . '</p>' .
-       '<p>' . __('<a href="http://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+       '<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Users_Screen" target="_blank">Documentation on Network Users</a>') . '</p>' .
+       '<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
 );
 
 if ( isset($_REQUEST['action']) && 'add-user' == $_REQUEST['action'] ) {
        check_admin_referer( 'add-user', '_wpnonce_add-user' );
+
        if ( ! current_user_can( 'manage_network_users' ) )
-               wp_die( __( 'You do not have permission to access this page.' ) );
+               wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
 
        if ( ! is_array( $_POST['user'] ) )
                wp_die( __( 'Cannot create an empty user.' ) );
 
-       $user = $_POST['user'];
+       $user = wp_unslash( $_POST['user'] );
 
        $user_details = wpmu_validate_user_signup( $user['username'], $user['email'] );
        if ( is_wp_error( $user_details[ 'errors' ] ) && ! empty( $user_details[ 'errors' ]->errors ) ) {
                $add_user_errors = $user_details[ 'errors' ];
        } else {
                $password = wp_generate_password( 12, false);
-               $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
+               $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, sanitize_email( $user['email'] ) );
 
                if ( ! $user_id ) {
                        $add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) );
                } else {
-                       wp_new_user_notification( $user_id, $password );
-                       wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
+                       /**
+                         * Fires after a new user has been created via the network user-new.php page.
+                         *
+                         * @since 4.4.0
+                         *
+                         * @param int $user_id ID of the newly created user.
+                         */
+                       do_action( 'network_user_new_created_user', $user_id );
+                       wp_redirect( add_query_arg( array('update' => 'added', 'user_id' => $user_id ), 'user-new.php' ) );
                        exit;
                }
        }
@@ -60,22 +67,35 @@ if ( isset($_REQUEST['action']) && 'add-user' == $_REQUEST['action'] ) {
 
 if ( isset($_GET['update']) ) {
        $messages = array();
-       if ( 'added' == $_GET['update'] )
-               $messages[] = __('User added.');
+       if ( 'added' == $_GET['update'] ) {
+               $edit_link = '';
+               if ( isset( $_GET['user_id'] ) ) {
+                       $user_id_new = absint( $_GET['user_id'] );
+                       if ( $user_id_new ) {
+                               $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_id_new ) ) );
+                       }
+               }
+
+               if ( empty( $edit_link ) ) {
+                       $messages[] = __( 'User added.' );
+               } else {
+                       /* translators: %s: edit page url */
+                       $messages[] = sprintf( __( 'User added. <a href="%s">Edit user</a>' ), $edit_link );
+               }
+       }
 }
 
 $title = __('Add New User');
 $parent_file = 'users.php';
 
-require('../admin-header.php'); ?>
+require( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2 id="add-new-user"><?php _e('Add New User') ?></h2>
+<h1 id="add-new-user"><?php _e( 'Add New User' ); ?></h1>
 <?php
 if ( ! empty( $messages ) ) {
        foreach ( $messages as $msg )
-               echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
+               echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
 }
 
 if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) { ?>
@@ -86,24 +106,32 @@ if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) { ?>
                ?>
        </div>
 <?php } ?>
-       <form action="<?php echo network_admin_url('user-new.php?action=add-user'); ?>" id="adduser" method="post">
+       <form action="<?php echo network_admin_url('user-new.php?action=add-user'); ?>" id="adduser" method="post" novalidate="novalidate">
        <table class="form-table">
                <tr class="form-field form-required">
-                       <th scope="row"><?php _e( 'Username' ) ?></th>
-                       <td><input type="text" class="regular-text" name="user[username]" /></td>
+                       <th scope="row"><label for="username"><?php _e( 'Username' ) ?></label></th>
+                       <td><input type="text" class="regular-text" name="user[username]" id="username" autocapitalize="none" autocorrect="off" maxlength="60" /></td>
                </tr>
                <tr class="form-field form-required">
-                       <th scope="row"><?php _e( 'Email' ) ?></th>
-                       <td><input type="text" class="regular-text" name="user[email]" /></td>
+                       <th scope="row"><label for="email"><?php _e( 'Email' ) ?></label></th>
+                       <td><input type="email" class="regular-text" name="user[email]" id="email"/></td>
                </tr>
                <tr class="form-field">
-                       <td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
+                       <td colspan="2"><?php _e( 'A password reset link will be sent to the user via email.' ) ?></td>
                </tr>
        </table>
-       <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
-       <?php submit_button( __('Add User'), 'primary', 'add-user' ); ?>
+       <?php
+       /**
+        * Fires at the end of the new user form in network admin.
+        *
+        * @since 4.5.0
+        */
+       do_action( 'network_user_new_form' );
+
+       wp_nonce_field( 'add-user', '_wpnonce_add-user' );
+       submit_button( __('Add User'), 'primary', 'add-user' );
+       ?>
        </form>
 </div>
 <?php
-require('../admin-footer.php');
-?>
+require( ABSPATH . 'wp-admin/admin-footer.php' );