]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/user-edit.php
WordPress 3.5.1
[autoinstalls/wordpress.git] / wp-admin / user-edit.php
index cf3efd41b93be9a2697cb2065c49c72c5298cf1a..eadc1f08eb139797f5461c473c31a80440914cf0 100644 (file)
@@ -36,25 +36,27 @@ if ( current_user_can('edit_users') && !is_user_admin() )
 else
        $parent_file = 'profile.php';
 
 else
        $parent_file = 'profile.php';
 
-// contextual help - choose Help on the top right of admin panel to preview this.
-add_contextual_help($current_screen,
-    '<p>' . __('Your profile contains information about you (your &#8220;account&#8221;) as well as some personal options related to using WordPress.') . '</p>' .
-    '<p>' . __('You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things.') . '</p>' .
-    '<p>' . __('Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts.') . '</p>' .
-    '<p>' . __('Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so.') . '</p>' .
-    '<p>' . __('Remember to click the Update Profile button when you are finished.') . '</p>' .
+$profile_help = '<p>' . __('Your profile contains information about you (your &#8220;account&#8221;) as well as some personal options related to using WordPress.') . '</p>' .
+       '<p>' . __('You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens.') . '</p>' .
+       '<p>' . __('Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts.') . '</p>' .
+       '<p>' . __('Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so.') . '</p>' .
+       '<p>' . __('Remember to click the Update Profile button when you are finished.') . '</p>';
+
+get_current_screen()->add_help_tab( array(
+       'id'      => 'overview',
+       'title'   => __('Overview'),
+       'content' => $profile_help,
+) );
+
+get_current_screen()->set_help_sidebar(
     '<p><strong>' . __('For more information:') . '</strong></p>' .
     '<p><strong>' . __('For more information:') . '</strong></p>' .
-    '<p>' . __('<a href="http://codex.wordpress.org/Users_Your_Profile_SubPanel" target="_blank">Documentation on User Profiles</a>') . '</p>' .
+    '<p>' . __('<a href="http://codex.wordpress.org/Users_Your_Profile_Screen" target="_blank">Documentation on User Profiles</a>') . '</p>' .
     '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
     '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
-
 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes($wp_http_referer));
 
 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes($wp_http_referer));
 
-$all_post_caps = array('posts', 'pages');
-$user_can_edit = false;
-foreach ( $all_post_caps as $post_cap )
-       $user_can_edit |= current_user_can("edit_$post_cap");
+$user_can_edit = current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' );
 
 /**
  * Optional SSL preference that can be turned on by hooking to the 'personal_options' action.
 
 /**
  * Optional SSL preference that can be turned on by hooking to the 'personal_options' action.
@@ -72,7 +74,6 @@ function use_ssl_preference($user) {
 <?php
 }
 
 <?php
 }
 
-
 // Only allow super admins on multisite to edit every user.
 if ( is_multisite() && ! current_user_can( 'manage_network_users' ) && $user_id != $current_user->ID && ! apply_filters( 'enable_edit_any_user_configuration', true ) )
        wp_die( __( 'You do not have permission to edit this user.' ) );
 // Only allow super admins on multisite to edit every user.
 if ( is_multisite() && ! current_user_can( 'manage_network_users' ) && $user_id != $current_user->ID && ! apply_filters( 'enable_edit_any_user_configuration', true ) )
        wp_die( __( 'You do not have permission to edit this user.' ) );
@@ -81,11 +82,12 @@ if ( is_multisite() && ! current_user_can( 'manage_network_users' ) && $user_id
 if ( is_multisite() && IS_PROFILE_PAGE && isset( $_GET[ 'newuseremail' ] ) && $current_user->ID ) {
        $new_email = get_option( $current_user->ID . '_new_email' );
        if ( $new_email[ 'hash' ] == $_GET[ 'newuseremail' ] ) {
 if ( is_multisite() && IS_PROFILE_PAGE && isset( $_GET[ 'newuseremail' ] ) && $current_user->ID ) {
        $new_email = get_option( $current_user->ID . '_new_email' );
        if ( $new_email[ 'hash' ] == $_GET[ 'newuseremail' ] ) {
+               $user = new stdClass;
                $user->ID = $current_user->ID;
                $user->user_email = esc_html( trim( $new_email[ 'newemail' ] ) );
                if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $current_user->user_login ) ) )
                        $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
                $user->ID = $current_user->ID;
                $user->user_email = esc_html( trim( $new_email[ 'newemail' ] ) );
                if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $current_user->user_login ) ) )
                        $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
-               wp_update_user( get_object_vars( $user ) );
+               wp_update_user( $user );
                delete_option( $current_user->ID . '_new_email' );
                wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
                die();
                delete_option( $current_user->ID . '_new_email' );
                wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
                die();
@@ -138,7 +140,7 @@ if ( !is_multisite() ) {
 }
 
 if ( !is_wp_error( $errors ) ) {
 }
 
 if ( !is_wp_error( $errors ) ) {
-       $redirect = (IS_PROFILE_PAGE ? "profile.php?" : "user-edit.php?user_id=$user_id&"). "updated=true";
+       $redirect = add_query_arg( 'updated', true, get_edit_user_link( $user_id ) );
        if ( $wp_http_referer )
                $redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
        wp_redirect($redirect);
        if ( $wp_http_referer )
                $redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
        wp_redirect($redirect);
@@ -159,9 +161,13 @@ include (ABSPATH . 'wp-admin/admin-header.php');
 <?php } ?>
 <?php if ( isset($_GET['updated']) ) : ?>
 <div id="message" class="updated">
 <?php } ?>
 <?php if ( isset($_GET['updated']) ) : ?>
 <div id="message" class="updated">
+       <?php if ( IS_PROFILE_PAGE ) : ?>
+       <p><strong><?php _e('Profile updated.') ?></strong></p>
+       <?php else: ?>
        <p><strong><?php _e('User updated.') ?></strong></p>
        <p><strong><?php _e('User updated.') ?></strong></p>
+       <?php endif; ?>
        <?php if ( $wp_http_referer && !IS_PROFILE_PAGE ) : ?>
        <?php if ( $wp_http_referer && !IS_PROFILE_PAGE ) : ?>
-       <p><a href="<?php echo esc_url( $wp_http_referer ); ?>"><?php _e('&larr; Back to Authors and Users'); ?></a></p>
+       <p><a href="<?php echo esc_url( $wp_http_referer ); ?>"><?php _e('&larr; Back to Users'); ?></a></p>
        <?php endif; ?>
 </div>
 <?php endif; ?>
        <?php endif; ?>
 </div>
 <?php endif; ?>
@@ -171,7 +177,17 @@ include (ABSPATH . 'wp-admin/admin-header.php');
 
 <div class="wrap" id="profile-page">
 <?php screen_icon(); ?>
 
 <div class="wrap" id="profile-page">
 <?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?></h2>
+<h2>
+<?php
+echo esc_html( $title );
+if ( ! IS_PROFILE_PAGE ) {
+       if ( current_user_can( 'create_users' ) ) { ?>
+               <a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'user' ); ?></a>
+       <?php } elseif ( is_multisite() && current_user_can( 'promote_users' ) ) { ?>
+               <a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add Existing', 'user' ); ?></a>
+       <?php }
+} ?>
+</h2>
 
 <form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
 <?php wp_nonce_field('update-user_' . $user_id) ?>
 
 <form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
 <?php wp_nonce_field('update-user_' . $user_id) ?>
@@ -206,14 +222,12 @@ if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
 </tr>
 <?php endif; ?>
 <tr class="show-admin-bar">
 </tr>
 <?php endif; ?>
 <tr class="show-admin-bar">
-<th scope="row"><?php _e('Show Admin Bar')?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e('Show Admin Bar') ?></span></legend>
+<th scope="row"><?php _e('Toolbar')?></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _e('Toolbar') ?></span></legend>
 <label for="admin_bar_front">
 <label for="admin_bar_front">
-<input name="admin_bar_front" type="checkbox" id="admin_bar_front" value="1" <?php checked( _get_admin_bar_pref( 'front', $profileuser->ID ) ); ?> />
-<?php /* translators: Show admin bar when viewing site */ _e( 'when viewing site' ); ?></label><br />
-<label for="admin_bar_admin">
-<input name="admin_bar_admin" type="checkbox" id="admin_bar_admin" value="1" <?php checked( _get_admin_bar_pref( 'admin', $profileuser->ID ) ); ?> />
-<?php /* translators: Show admin bar in dashboard */ _e( 'in dashboard' ); ?></label>
+<input name="admin_bar_front" type="checkbox" id="admin_bar_front" value="1"<?php checked( _get_admin_bar_pref( 'front', $profileuser->ID ) ); ?> />
+<?php _e( 'Show Toolbar when viewing site' ); ?></label><br />
+</fieldset>
 </td>
 </tr>
 <?php do_action('personal_options', $profileuser); ?>
 </td>
 </tr>
 <?php do_action('personal_options', $profileuser); ?>
@@ -232,13 +246,13 @@ if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
        </tr>
 
 <?php if ( !IS_PROFILE_PAGE && !is_network_admin() ) : ?>
        </tr>
 
 <?php if ( !IS_PROFILE_PAGE && !is_network_admin() ) : ?>
-<tr><th><label for="role"><?php _e('Role:') ?></label></th>
+<tr><th><label for="role"><?php _e('Role') ?></label></th>
 <td><select name="role" id="role">
 <?php
 <td><select name="role" id="role">
 <?php
-// Get the highest/primary role for this user
+// Compare user role against currently editable roles
 // TODO: create a function that does this: wp_get_user_role()
 // TODO: create a function that does this: wp_get_user_role()
-$user_roles = $profileuser->roles;
-$user_role = array_shift($user_roles);
+$user_roles = array_intersect( array_values( $profileuser->roles ), array_keys( get_editable_roles() ) );
+$user_role  = array_shift( $user_roles );
 
 // print the full list of roles with the primary one selected.
 wp_dropdown_roles($user_role);
 
 // print the full list of roles with the primary one selected.
 wp_dropdown_roles($user_role);
@@ -249,13 +263,13 @@ if ( $user_role )
 else
        echo '<option value="" selected="selected">' . __('&mdash; No role for this site &mdash;') . '</option>';
 ?>
 else
        echo '<option value="" selected="selected">' . __('&mdash; No role for this site &mdash;') . '</option>';
 ?>
-</select>
+</select></td></tr>
 <?php endif; //!IS_PROFILE_PAGE
 
 if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
 <?php endif; //!IS_PROFILE_PAGE
 
 if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
-<tr><th><label for="role"><?php _e('Super Admin'); ?></label></th>
+<tr><th><?php _e('Super Admin'); ?></th>
 <td>
 <td>
-<?php if ( $profileuser->user_email != get_site_option( 'admin_email' ) ) : ?>
+<?php if ( $profileuser->user_email != get_site_option( 'admin_email' ) || ! is_super_admin( $profileuser->ID ) ) : ?>
 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profileuser->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p>
 <?php else : ?>
 <p><?php _e( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?></p>
 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profileuser->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p>
 <?php else : ?>
 <p><?php _e( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?></p>
@@ -284,23 +298,29 @@ if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_c
                <select name="display_name" id="display_name">
                <?php
                        $public_display = array();
                <select name="display_name" id="display_name">
                <?php
                        $public_display = array();
-                       $public_display['display_username']  = $profileuser->user_login;
                        $public_display['display_nickname']  = $profileuser->nickname;
                        $public_display['display_nickname']  = $profileuser->nickname;
+                       $public_display['display_username']  = $profileuser->user_login;
+
                        if ( !empty($profileuser->first_name) )
                                $public_display['display_firstname'] = $profileuser->first_name;
                        if ( !empty($profileuser->first_name) )
                                $public_display['display_firstname'] = $profileuser->first_name;
+
                        if ( !empty($profileuser->last_name) )
                                $public_display['display_lastname'] = $profileuser->last_name;
                        if ( !empty($profileuser->last_name) )
                                $public_display['display_lastname'] = $profileuser->last_name;
+
                        if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
                                $public_display['display_firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
                                $public_display['display_lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
                        }
                        if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
                                $public_display['display_firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
                                $public_display['display_lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
                        }
+
                        if ( !in_array( $profileuser->display_name, $public_display ) ) // Only add this if it isn't duplicated elsewhere
                                $public_display = array( 'display_displayname' => $profileuser->display_name ) + $public_display;
                        if ( !in_array( $profileuser->display_name, $public_display ) ) // Only add this if it isn't duplicated elsewhere
                                $public_display = array( 'display_displayname' => $profileuser->display_name ) + $public_display;
+
                        $public_display = array_map( 'trim', $public_display );
                        $public_display = array_unique( $public_display );
                        $public_display = array_map( 'trim', $public_display );
                        $public_display = array_unique( $public_display );
+
                        foreach ( $public_display as $id => $item ) {
                ?>
                        foreach ( $public_display as $id => $item ) {
                ?>
-                       <option id="<?php echo $id; ?>" value="<?php echo esc_attr($item); ?>"<?php selected( $profileuser->display_name, $item ); ?>><?php echo $item; ?></option>
+                       <option <?php selected( $profileuser->display_name, $item ); ?>><?php echo $item; ?></option>
                <?php
                        }
                ?>
                <?php
                        }
                ?>
@@ -404,11 +424,10 @@ if ( $show_password_fields ) :
 break;
 }
 ?>
 break;
 }
 ?>
-<script type="text/javascript" charset="utf-8">
+<script type="text/javascript">
        if (window.location.hash == '#password') {
                document.getElementById('pass1').focus();
        }
 </script>
 <?php
 include( ABSPATH . 'wp-admin/admin-footer.php');
        if (window.location.hash == '#password') {
                document.getElementById('pass1').focus();
        }
 </script>
 <?php
 include( ABSPATH . 'wp-admin/admin-footer.php');
-?>