WordPress.org

Make WordPress Core

Ticket #15558: 15558.5.diff

File 15558.5.diff, 5.2 KB (added by PeteMall, 9 years ago)

Create new user form.

  • wp-admin/network/site-users.php

     
    2222
    2323$action = $wp_list_table->current_action();
    2424
    25 $s = isset($_REQUEST['s']) ? $_REQUEST['s'] : '';
    26 
    27 // Clean up request URI from temporary args for screen options/paging uri's to work as expected.
    28 $_SERVER['REQUEST_URI'] = remove_query_arg(array('enable', 'disable', 'enable-selected', 'disable-selected'), $_SERVER['REQUEST_URI']);
    29 
    3025$id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
    3126
    3227if ( ! $id )
     
    5550        switch_to_blog( $id );
    5651       
    5752        switch ( $action ) {
     53                case 'newuser':
     54                        $user = $_POST['user'];
     55                        if ( !is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) {
     56                                $update = 'err_new';
     57                        } else {
     58                                $password = wp_generate_password( 12, false);
     59                                $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
     60
     61                                if ( false == $user_id ) {
     62                                        $update = 'err_new_dup';
     63                                } else {
     64                                        wp_new_user_notification( $user_id, $password );
     65                                        add_user_to_blog( $id, $user_id, $_POST['new_role'] );
     66                                        $update = 'newuser';
     67                                }
     68                        }
     69                        break;
     70
    5871                case 'adduser':
    5972                        if ( !empty( $_POST['newuser'] ) ) {
    60                                 $update = 'add';
     73                                $update = 'adduser';
    6174                                $newuser = $_POST['newuser'];                           
    6275                                $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
    6376                                if ( $userid ) {
     
    151164
    152165if ( isset($_GET['update']) ) :
    153166        switch($_GET['update']) {
    154         case 'add':
     167        case 'adduser':
    155168                echo '<div id="message" class="updated"><p>' . __( 'User added.' ) . '</p></div>';
    156169                break;
    157170        case 'err_add_member':
     
    167180                echo '<div id="message" class="error"><p>' . __( 'Select a user to change role.' ) . '</p></div>';
    168181                break;
    169182        case 'remove':
    170                 echo '<div id="message" class="updated fade"><p>' . __( 'User removed from this site.' ) . '</p></div>';
     183                echo '<div id="message" class="updated"><p>' . __( 'User removed from this site.' ) . '</p></div>';
    171184                break;
    172185        case 'err_remove':
    173186                echo '<div id="message" class="error"><p>' . __( 'Select a user to remove.' ) . '</p></div>';
    174187                break;
     188        case 'newuser':
     189                echo '<div id="message" class="updated"><p>' . __( 'User created.' ) . '</p></div>';
     190                break;
     191        case 'err_new':
     192                echo '<div id="message" class="error"><p>' . __( 'Enter the username and email.' ) . '</p></div>';
     193                break;
     194        case 'err_new_dup':
     195                echo '<div id="message" class="error"><p>' . __( 'Duplicated username or email address.' ) . '</p></div>';
     196                break;
    175197        }
    176198endif; ?>
    177199
     
    193215
    194216</form>
    195217
    196 <h3 id="add-new-user"><?php _e('Add Existing User') ?></h3>
    197 <p class="description"><?php _e( 'Enter the username of an existing user.' ) ?></p>
    198         <form action="site-users.php?action=adduser" id="adduser" method="post">
     218<h3 id="add-existing-user"><?php _e('Add Existing User') ?></h3>
     219<p><?php _e( 'Enter the username of an existing user on this network.' ) ?></p>
     220<form action="site-users.php?action=adduser" id="adduser" method="post">
    199221        <?php wp_nonce_field( 'edit-site' ); ?>
    200222        <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
    201223        <table class="form-table">
    202224                <tr>
    203225                        <th scope="row"><?php _e( 'Username' ); ?></th>
    204                         <td><input type="text" name="newuser" id="newuser" /></td>
     226                        <td><input type="text" class="regular-text" name="newuser" id="newuser" /></td>
    205227                </tr>
    206228                <tr>
    207229                        <th scope="row"><?php _e( 'Role'); ?></th>
     
    219241                </tr>
    220242        </table>
    221243        <?php submit_button( __('Add User'), 'primary', 'add-user' ); ?>
    222         </form>
     244</form>
     245
     246<h3 id="add-new-user"><?php _e('Create New User') ?></h3>
     247<p><?php _e( 'Create a brand new user and add it to this site.' ) ?></p>
     248<form action="<?php echo network_admin_url('site-users.php?action=newuser'); ?>" id="newuser" method="post">
     249        <?php wp_nonce_field( 'edit-site' ); ?>
     250        <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
     251        <table class="form-table">
     252                <tr>
     253                        <th scope="row"><?php _e( 'Username' ) ?></th>
     254                        <td><input type="text" class="regular-text" name="user[username]" /></td>
     255                </tr>
     256                <tr>
     257                        <th scope="row"><?php _e( 'Email' ) ?></th>
     258                        <td><input type="text" class="regular-text" name="user[email]" /></td>
     259                </tr>
     260                <tr>
     261                        <th scope="row"><?php _e( 'Role'); ?></th>
     262                        <td><select name="new_role" id="new_role_0">
     263                        <?php
     264                        reset( $editblog_roles );
     265                        foreach ( $editblog_roles as $role => $role_assoc ){
     266                                $name = translate_user_role( $role_assoc['name'] );
     267                                $selected = ( $role == $default_role ) ? 'selected="selected"' : '';
     268                                echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
     269                        }
     270                        ?>
     271                        </select></td>
     272                </tr>
     273                <tr class="form-field">
     274                        <td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
     275                </tr>
     276        </table>
     277        <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
     278        <?php submit_button( __('Add User'), 'primary', 'add-user' ); ?>
     279</form>
    223280</div>
    224281<?php
    225282require('../admin-footer.php');
     283 No newline at end of file