Add new user page for network admin. Props PeteMall. see #14435

git-svn-id: http://svn.automattic.com/wordpress/trunk@16183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-11-04 16:16:52 +00:00
parent c5a9fd309d
commit a9e5ade43f
4 changed files with 95 additions and 58 deletions

View File

@ -444,33 +444,6 @@ switch ( $_GET['action'] ) {
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), network_admin_url( 'users.php' ) ) );
break;
case 'adduser':
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.' ) );
if ( is_array( $_POST['user'] ) == false )
wp_die( __( 'Cannot create an empty user.' ) );
$user = $_POST['user'];
if ( empty($user['username']) && empty($user['email']) )
wp_die( __( 'Missing username and email.' ) );
elseif ( empty($user['username']) )
wp_die( __( 'Missing username.' ) );
elseif ( empty($user['email']) )
wp_die( __( 'Missing email.' ) );
$password = wp_generate_password();
$user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
if ( false == $user_id )
wp_die( __( 'Duplicated username or email address.' ) );
else
wp_new_user_notification( $user_id, $password );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add' ), wp_get_referer() ) );
exit();
break;
default:
wp_redirect( network_admin_url( 'index.php' ) );
break;

View File

@ -14,11 +14,12 @@ $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
/* translators: Sites menu item */
$menu[5] = array(__('Sites'), 'manage_sites', 'sites.php', '', 'menu-top menu-icon-site', 'menu-site', 'div');
$submenu['sites.php'][5] = array( __('Sites'), 'manage_sites', 'sites.php' );
$submenu['sites.php'][10] = array( __('Add New'), 'create_sites', 'site-new.php' );
$menu[10] = array(__('Users'), 'manage_network_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'div');
$submenu['users.php'][5] = array( __('Users'), 'manage_network_users', 'users.php' );
$submenu['users.php'][10] = array( __('Add New'), 'manage_network_users', 'user-new.php' );
$menu[15] = array(__('Themes'), 'manage_network_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'div');
$submenu['themes.php'][5] = array( __('Themes'), 'manage_network_themes', 'themes.php' );

View File

@ -0,0 +1,87 @@
<?php
/**
* Add Site Administration Screen
*
* @package WordPress
* @subpackage Administration
* @since 3.1.0
*/
/** Load WordPress Administration Bootstrap */
require_once('./admin.php');
if ( ! is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) );
if ( ! current_user_can('manage_network_users') )
wp_die(__('You do not have sufficient permissions to add users to this network.'));
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.' ) );
if ( is_array( $_POST['user'] ) == false )
wp_die( __( 'Cannot create an empty user.' ) );
$user = $_POST['user'];
if ( empty($user['username']) && empty($user['email']) )
wp_die( __( 'Missing username and email.' ) );
elseif ( empty($user['username']) )
wp_die( __( 'Missing username.' ) );
elseif ( empty($user['email']) )
wp_die( __( 'Missing email.' ) );
$password = wp_generate_password();
$user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
if ( false == $user_id )
wp_die( __( 'Duplicated username or email address.' ) );
else
wp_new_user_notification( $user_id, $password );
wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
exit;
}
if ( isset($_GET['update']) ) {
$messages = array();
if ( 'added' == $_GET['update'] )
$messages[] = __('User added.');
}
$title = __('Add New User');
$parent_file = 'users.php';
require('../admin-header.php'); ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2 id="add-new-user"><?php _e('Add New User') ?></h2>
<?php
if ( ! empty( $messages ) ) {
foreach ( $messages as $msg )
echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
} ?>
<form action="<?php echo network_admin_url('user-new.php?action=add-user'); ?>" method="post">
<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>
</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>
</tr>
<tr class="form-field">
<td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
</tr>
</table>
<p class="submit">
<?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
<?php submit_button( __('Add User'), 'primary', 'add-user' ); ?>
</form>
</div>
<?php
require('../admin-footer.php');
?>

View File

@ -62,9 +62,11 @@ if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty(
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php esc_html_e( 'Users' ); ?>
<a href="#form-add-user" class="button add-new-h2"><?php echo esc_html_x( 'Add New' , 'users'); ?></a>
<?php
<h2><?php esc_html_e( 'Users' );
if ( current_user_can( 'create_users') ) : ?>
<a href="<?php echo network_admin_url('user-new.php'); ?>" class="button add-new-h2"><?php echo esc_html_x( 'Add New', 'users' ); ?></a><?php
endif;
if ( !empty( $usersearch ) )
printf( '<span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;' ) . '</span>', esc_html( $usersearch ) );
?>
@ -82,30 +84,4 @@ if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty(
</form>
</div>
<?php
if ( apply_filters( 'show_adduser_fields', true ) ) :
?>
<div class="wrap" id="form-add-user">
<h3><?php _e( 'Add User' ) ?></h3>
<form action="edit.php?action=adduser" method="post">
<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>
</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>
</tr>
<tr class="form-field">
<td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
</tr>
</table>
<p class="submit">
<?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
<input class="button" type="submit" value="<?php esc_attr_e( 'Add user' ) ?>" /></p>
</form>
</div>
<?php endif;
require_once( '../admin-footer.php' ); ?>
<?php require_once( '../admin-footer.php' ); ?>