Index: users.php
===================================================================
--- users.php	(revision 14040)
+++ users.php	(working copy)
@@ -15,14 +15,6 @@
 if ( !current_user_can('edit_users') )
 	wp_die(__('Cheatin&#8217; uh?'));
 
-if ( ! is_multisite() && current_user_can('delete_users') ) {
-	$del_cap_user = 'delete_user';
-	$del_cap_users = 'delete_users';
-} else {
-	$del_cap_user = 'remove_user';
-	$del_cap_users = 'remove_users';
-}
-
 $title = __('Users');
 $parent_file = 'users.php';
 
@@ -51,22 +43,22 @@
 case 'promote':
 	check_admin_referer('bulk-users');
 
-	if ( empty($_REQUEST['users']) ) {
+	if (empty($_REQUEST['users'])) {
 		wp_redirect($redirect);
 		exit();
 	}
 
 	$editable_roles = get_editable_roles();
-	if ( empty( $editable_roles[$_REQUEST['new_role']] ) )
+	if (!$editable_roles[$_REQUEST['new_role']])
 		wp_die(__('You can&#8217;t give users that role.'));
 
 	$userids = $_REQUEST['users'];
 	$update = 'promote';
-	foreach ( $userids as $id ) {
+	foreach($userids as $id) {
 		if ( ! current_user_can('edit_user', $id) )
 			wp_die(__('You can&#8217;t edit that user.'));
 		// The new role of the current user must also have edit_users caps
-		if ( $id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('edit_users') ) {
+		if($id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('edit_users')) {
 			$update = 'err_admin_role';
 			continue;
 		}
@@ -89,33 +81,27 @@
 		exit();
 	}
 
-	if ( ! current_user_can($del_cap_users ) )
-		wp_die(__('You can&#8217;t remove users.'));
+	if ( !current_user_can('delete_users') )
+		wp_die(__('You can&#8217;t delete users.'));
 
 	$userids = $_REQUEST['users'];
 	$update = 'del';
 	$delete_count = 0;
 
 	foreach ( (array) $userids as $id) {
-		if ( ! current_user_can( $del_cap_user, $id ) )
-			wp_die(__( 'You can&#8217;t remove that user.' ) );
+		if ( ! current_user_can('delete_user', $id) )
+			wp_die(__('You can&#8217;t delete that user.'));
 
-		if ( $id == $current_user->ID ) {
+		if($id == $current_user->ID) {
 			$update = 'err_admin_del';
 			continue;
 		}
-		switch ( $_REQUEST['delete_option'] ) {
+		switch($_REQUEST['delete_option']) {
 		case 'delete':
-			if ( !is_multisite() && current_user_can('delete_user', $id) )
-				wp_delete_user($id);
-			else
-				remove_user_from_blog($id, $blog_id); // WPMU only remove user from blog
+			wp_delete_user($id);
 			break;
 		case 'reassign':
-			if ( !is_multisite() && current_user_can('delete_user', $id) )
-				wp_delete_user($id, $_REQUEST['reassign_user']);
-			else
-				remove_user_from_blog($id, $blog_id, $_REQUEST['reassign_user']);
+			wp_delete_user($id, $_REQUEST['reassign_user']);
 			break;
 		}
 		++$delete_count;
@@ -136,8 +122,8 @@
 		exit();
 	}
 
-	if ( ! current_user_can( $del_cap_users ) )
-		$errors = new WP_Error( 'edit_users', __( 'You can&#8217;t delete users.' ) );
+	if ( !current_user_can('delete_users') )
+		$errors = new WP_Error('edit_users', __('You can&#8217;t delete users.'));
 
 	if ( empty($_REQUEST['users']) )
 		$userids = array(intval($_REQUEST['user']));
@@ -146,6 +132,8 @@
 
 	include ('admin-header.php');
 ?>
+
+
 <form action="" method="post" name="updateusers" id="updateusers">
 <?php wp_nonce_field('delete-users') ?>
 <?php echo $referer; ?>
@@ -153,6 +141,7 @@
 <div class="wrap">
 <?php screen_icon(); ?>
 <h2><?php _e('Delete Users'); ?></h2>
+
 <p><?php _e('You have specified these users for deletion:'); ?></p>
 <ul>
 <?php
@@ -162,17 +151,12 @@
 		$user = new WP_User($id);
 		if ( $id == $current_user->ID ) {
 			echo "<li>" . sprintf(__('ID #%1s: %2s <strong>The current user will not be deleted.</strong>'), $id, $user->user_login) . "</li>\n";
-		} else {
+		} 	else {
 			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"" . esc_attr($id) . "\" />" . sprintf(__('ID #%1s: %2s'), $id, $user->user_login) . "</li>\n";
 			$go_delete = true;
 		}
 	}
-	if ( !is_multisite() ) {
-		$all_logins = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users ORDER BY user_login");
-	} else {
-		// WPMU only searches users of current blog
-		$all_logins = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users, $wpdb->usermeta WHERE $wpdb->users.ID = $wpdb->usermeta.user_id AND meta_key = '".$wpdb->prefix."capabilities' ORDER BY user_login");
-	}
+	$all_logins = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users ORDER BY user_login");
 	$user_dropdown = '<select name="reassign_user">';
 	foreach ( (array) $all_logins as $login )
 		if ( $login->ID == $current_user->ID || !in_array($login->ID, $userids) )
@@ -180,21 +164,123 @@
 	$user_dropdown .= '</select>';
 	?>
 	</ul>
-<?php if ( $go_delete ) : ?>
+<?php 
+
+
+	$link_owners = $wpdb->get_col( $wpdb->prepare(
+"SELECT $wpdb->links.link_owner FROM $wpdb->links WHERE `link_owner`=%s"
+, $id 
+ ));
+foreach ( $link_owners as $link_owner ){ 
+ 
+if($link_owner == $id){
+
+$num_links=$num_links+1;
+
+}
+
+}
+
+
+
+$post_authors = $wpdb->get_col( $wpdb->prepare(
+"SELECT $wpdb->posts.post_author FROM $wpdb->posts WHERE `post_author`=%s"
+, $id 
+ ));
+foreach ( $post_authors as $post_author ){ 
+ 
+if($post_author == $id){
+
+$num_posts=$num_posts+1;
+
+}
+
+}
+	
+	if ( $go_delete ) : 
+
+
+
+if($num_posts>0 && $num_links>0){
+           
+		?>
+
+
 	<fieldset><p><legend><?php _e('What should be done with posts and links owned by this user?'); ?></legend></p>
 	<ul style="list-style:none;">
 		<li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" checked="checked" />
-		<?php _e('Delete all posts and links.'); ?></label></li>
+		<?php _e('Delete all posts.'); ?></label></li>
 		<li><input type="radio" id="delete_option1" name="delete_option" value="reassign" />
-		<?php echo '<label for="delete_option1">'.__('Attribute all posts and links to:')."</label> $user_dropdown"; ?></li>
+		<?php echo '<label for="delete_option1">'.__('Attribute all posts to:')."</label> $user_dropdown"; ?></li>
 	</ul></fieldset>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	<?php }elseif($num_posts>0){
+           
+		?>
+
+
+	<fieldset><p><legend><?php _e('What should be done with posts owned by this user?'); ?></legend></p>
+	<ul style="list-style:none;">
+		<li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" checked="checked" />
+		<?php _e('Delete all posts.'); ?></label></li>
+		<li><input type="radio" id="delete_option1" name="delete_option" value="reassign" />
+		<?php echo '<label for="delete_option1">'.__('Attribute all posts to:')."</label> $user_dropdown"; ?></li>
+	</ul></fieldset><?php }elseif($num_links>0) {  ?>
+
+
+
+
+<fieldset><p><legend><?php _e('What should be done with links owned by this user?'); ?></legend></p>
+	<ul style="list-style:none;">
+		<li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" checked="checked" />
+		<?php _e('Delete all links.'); ?></label></li>
+		<li><input type="radio" id="delete_option1" name="delete_option" value="reassign" />
+		<?php echo '<label for="delete_option1">'.__('Attribute all links to:')."</label> $user_dropdown"; ?></li>
+	</ul></fieldset>
+<?php } else { ?>
+
+
+<label><input type="hidden" id="delete_option0" name="delete_option" value="delete" checked="checked" />
+		</label>
+		<input type="hidden" id="delete_option1" name="delete_option" value="reassign" />
+		<?php echo '<label for="delete_option1">'."</label> "; ?>
+
+		<?php } ?>
+
+
+
+
+
+
+
+
+
+
 	<input type="hidden" name="action" value="dodelete" />
 	<p class="submit"><input type="submit" name="submit" value="<?php esc_attr_e('Confirm Deletion'); ?>" class="button-secondary" /></p>
+
+		
+		
+		
+		
+		
+		
+		
+		
 <?php else : ?>
 	<p><?php _e('There are no valid users selected for deletion.'); ?></p>
 <?php endif; ?>
 </div>
 </form>
+
 <?php
 
 break;
@@ -212,36 +298,30 @@
 	$userspage = isset($_GET['userspage']) ? $_GET['userspage'] : null;
 	$role = isset($_GET['role']) ? $_GET['role'] : null;
 
-	// Query the user IDs for this page
+	// Query the users
 	$wp_user_search = new WP_User_Search($usersearch, $userspage, $role);
 
-	// Query the post counts for this page
-	$post_counts = count_many_users_posts($wp_user_search->get_results());
-
-	// Query the users for this page
-	cache_users($wp_user_search->get_results());
-
 	$messages = array();
 	if ( isset($_GET['update']) ) :
 		switch($_GET['update']) {
 		case 'del':
 		case 'del_many':
 			$delete_count = isset($_GET['delete_count']) ? (int) $_GET['delete_count'] : 0;
-			$messages[] = '<div id="message" class="updated"><p>' . sprintf(_n('%s user deleted', '%s users deleted', $delete_count), $delete_count) . '</p></div>';
+			$messages[] = '<div id="message" class="updated fade"><p>' . sprintf(_n('%s user deleted', '%s users deleted', $delete_count), $delete_count) . '</p></div>';
 			break;
 		case 'add':
-			$messages[] = '<div id="message" class="updated"><p>' . __('New user created.') . '</p></div>';
+			$messages[] = '<div id="message" class="updated fade"><p>' . __('New user created.') . '</p></div>';
 			break;
 		case 'promote':
-			$messages[] = '<div id="message" class="updated"><p>' . __('Changed roles.') . '</p></div>';
+			$messages[] = '<div id="message" class="updated fade"><p>' . __('Changed roles.') . '</p></div>';
 			break;
 		case 'err_admin_role':
 			$messages[] = '<div id="message" class="error"><p>' . __('The current user&#8217;s role must have user editing capabilities.') . '</p></div>';
-			$messages[] = '<div id="message" class="updated"><p>' . __('Other user roles have been changed.') . '</p></div>';
+			$messages[] = '<div id="message" class="updated fade"><p>' . __('Other user roles have been changed.') . '</p></div>';
 			break;
 		case 'err_admin_del':
 			$messages[] = '<div id="message" class="error"><p>' . __('You can&#8217;t delete the current user.') . '</p></div>';
-			$messages[] = '<div id="message" class="updated"><p>' . __('Other users have been deleted.') . '</p></div>';
+			$messages[] = '<div id="message" class="updated fade"><p>' . __('Other users have been deleted.') . '</p></div>';
 			break;
 		}
 	endif; ?>
@@ -264,7 +344,7 @@
 
 <div class="wrap">
 <?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); if ( current_user_can( 'create_users' ) ) { ?>  <a href="user-new.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'user'); ?></a><?php }
+<h2><?php echo esc_html( $title ); ?>  <a href="user-new.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'user'); ?></a> <?php
 if ( isset($_GET['usersearch']) && $_GET['usersearch'] )
 	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $_GET['usersearch'] ) ); ?>
 </h2>
@@ -273,14 +353,22 @@
 <form id="list-filter" action="" method="get">
 <ul class="subsubsub">
 <?php
-$users_of_blog = count_users();
-$total_users = $users_of_blog['total_users'];
-$avail_roles =& $users_of_blog['avail_roles'];
+$role_links = array();
+$avail_roles = array();
+$users_of_blog = get_users_of_blog();
+$total_users = count( $users_of_blog );
+foreach ( (array) $users_of_blog as $b_user ) {
+	$b_roles = unserialize($b_user->meta_value);
+	foreach ( (array) $b_roles as $b_role => $val ) {
+		if ( !isset($avail_roles[$b_role]) )
+			$avail_roles[$b_role] = 0;
+		$avail_roles[$b_role]++;
+	}
+}
 unset($users_of_blog);
 
 $current_role = false;
 $class = empty($role) ? ' class="current"' : '';
-$role_links = array();
 $role_links[] = "<li><a href='users.php'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
 foreach ( $wp_roles->get_names() as $this_role => $name ) {
 	if ( !isset($avail_roles[$this_role]) )
@@ -373,11 +461,8 @@
 	$roles = $user_object->roles;
 	$role = array_shift($roles);
 
-	if ( is_multisite() && empty( $role ) )
-		continue;
-
 	$style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
-	echo "\n\t", user_row( $user_object, $style, $role, $post_counts[ $userid ] );
+	echo "\n\t" . user_row($user_object, $style, $role);
 }
 ?>
 </tbody>
@@ -405,16 +490,6 @@
 </form>
 </div>
 
-<?php
-if ( is_multisite() ) {
-	foreach ( array('user_login' => 'user_login', 'first_name' => 'user_firstname', 'last_name' => 'user_lastname', 'email' => 'user_email', 'url' => 'user_uri', 'role' => 'user_role') as $formpost => $var ) {
-		$var = 'new_' . $var;
-		$$var = isset($_REQUEST[$formpost]) ? esc_attr(stripslashes($_REQUEST[$formpost])) : '';
-	}
-	unset($name);
-}
-?>
-
 <br class="clear" />
 <?php
 break;
