WordPress.org

Make WordPress Core

Ticket #15342: 15342.diff

File 15342.diff, 3.0 KB (added by PeteMall, 8 years ago)

Add existing user to site form.

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

     
    2727
    2828$is_main_site = is_main_site( $id );
    2929
     30// get blog prefix
     31$blog_prefix = $wpdb->get_blog_prefix( $id );
     32
     33// @todo This is a hack. Eventually, add API to WP_Roles allowing retrieval of roles for a particular blog.
     34if ( ! empty($wp_roles->use_db) ) {
     35        $editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" );
     36} else {
     37        // Roles are stored in memory, not the DB.
     38        $editblog_roles = $wp_roles->roles;
     39}
     40
    3041if ( isset($_REQUEST['action']) && 'update-site' == $_REQUEST['action'] ) {
    3142        check_admin_referer( 'edit-site' );
    3243
    3344        switch_to_blog( $id );
    3445
    35         // get blog prefix
    36         $blog_prefix = $wpdb->get_blog_prefix( $id );
    37 
    3846        // user roles
    3947        if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) {
    4048                $newroles = $_POST['role'];
     
    130138        <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
    131139<?php
    132140$blogusers = get_users( array( 'blog_id' => $id, 'number' => 20 ) );
     141
    133142if ( is_array( $blogusers ) ) {
    134143        echo '<table class="form-table">';
    135144        echo "<tr><th>" . __( 'User' ) . "</th><th>" . __( 'Role' ) . "</th><th>" . __( 'Password' ) . "</th><th>" . __( 'Remove' ) . "</th></tr>";
    136145        $user_count = 0;
    137         // @todo This is a hack. Eventually, add API to WP_Roles allowing retrieval of roles for a particular blog.
    138         if ( ! empty($wp_roles->use_db) ) {
    139                 // If using the DB to store roles, consult the user_roles option.
    140                 $blog_prefix = $wpdb->get_blog_prefix( $id );
    141                 $editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" );
    142         } else {
    143                 // Roles are stored in memory, not the DB.
    144                 $editblog_roles = $wp_roles->roles;
    145         }
    146146
    147147        foreach ( $blogusers as $user_id => $user_object ) {
    148148                $user_count++;
     
    180180?>
    181181</form>
    182182
     183<h2 id="add-new-user"><?php _e('Add Existing User') ?></h2>
     184<p class="description"><?php _e( 'Enter the username of an existing user.' ) ?></p>
     185        <form action="site-users.php?action=update-site" id="adduser" method="post">
     186        <?php wp_nonce_field( 'edit-site' ); ?>
     187        <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
     188        <table class="form-table">
     189                <tr>
     190                        <th scope="row"><?php _e( 'Username' ); ?></th>
     191                        <td><input type="text" name="newuser" id="newuser" /></td>
     192                </tr>
     193                <tr>
     194                        <th scope="row"><?php _e( 'Role'); ?></th>
     195                        <td><select name="new_role" id="new_role_0">
     196                        <?php
     197                        reset( $editblog_roles );
     198                        foreach ( $editblog_roles as $role => $role_assoc ){
     199                                $name = translate_user_role( $role_assoc['name'] );
     200                                $selected = ( $role == $editblog_default_role ) ? 'selected="selected"' : '';
     201                                echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
     202                        }
     203                        ?>
     204                        </select></td>
     205                </tr>
     206        </table>
     207        <?php submit_button( __('Add User'), 'primary', 'add-user' ); ?>
     208        </form>
    183209</div>
    184210<?php
    185211require('../admin-footer.php');
     212 No newline at end of file