Users: When deleting users, exclude the current user from the content existence check.

The current user cannot be deleted, so the check is redundant in that context and should only be done for other users.

Props mt8.biz, SergeyBiryukov.
Fixes #47851.
Built from https://develop.svn.wordpress.org/trunk@45806


git-svn-id: http://core.svn.wordpress.org/trunk@45617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2019-08-15 13:06:55 +00:00
parent 7169586254
commit ab0b860db9
2 changed files with 10 additions and 5 deletions

View File

@ -234,6 +234,11 @@ switch ( $wp_list_table->current_action() ) {
$userids = array_map( 'intval', (array) $_REQUEST['users'] ); $userids = array_map( 'intval', (array) $_REQUEST['users'] );
} }
if ( in_array( $current_user->ID, $userids ) ) {
$all_userids = $userids;
$userids = array_diff( $userids, array( $current_user->ID ) );
}
/** /**
* Filters whether the users being deleted have additional content * Filters whether the users being deleted have additional content
* associated with them outside of the `post_author` and `link_owner` relationships. * associated with them outside of the `post_author` and `link_owner` relationships.
@ -245,7 +250,7 @@ switch ( $wp_list_table->current_action() ) {
*/ */
$users_have_content = (bool) apply_filters( 'users_have_additional_content', false, $userids ); $users_have_content = (bool) apply_filters( 'users_have_additional_content', false, $userids );
if ( ! $users_have_content ) { if ( $userids && ! $users_have_content ) {
if ( $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE post_author IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) { if ( $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE post_author IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
$users_have_content = true; $users_have_content = true;
} elseif ( $wpdb->get_var( "SELECT link_id FROM {$wpdb->links} WHERE link_owner IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) { } elseif ( $wpdb->get_var( "SELECT link_id FROM {$wpdb->links} WHERE link_owner IN( " . implode( ',', $userids ) . ' ) LIMIT 1' ) ) {
@ -271,7 +276,7 @@ switch ( $wp_list_table->current_action() ) {
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php if ( 1 == count( $userids ) ) : ?> <?php if ( 1 == count( $all_userids ) ) : ?>
<p><?php _e( 'You have specified this user for deletion:' ); ?></p> <p><?php _e( 'You have specified this user for deletion:' ); ?></p>
<?php else : ?> <?php else : ?>
<p><?php _e( 'You have specified these users for deletion:' ); ?></p> <p><?php _e( 'You have specified these users for deletion:' ); ?></p>
@ -280,7 +285,7 @@ switch ( $wp_list_table->current_action() ) {
<ul> <ul>
<?php <?php
$go_delete = 0; $go_delete = 0;
foreach ( $userids as $id ) { foreach ( $all_userids as $id ) {
$user = get_userdata( $id ); $user = get_userdata( $id );
if ( $id == $current_user->ID ) { if ( $id == $current_user->ID ) {
/* translators: 1: user id, 2: user login */ /* translators: 1: user id, 2: user login */
@ -314,7 +319,7 @@ switch ( $wp_list_table->current_action() ) {
wp_dropdown_users( wp_dropdown_users(
array( array(
'name' => 'reassign_user', 'name' => 'reassign_user',
'exclude' => array_diff( $userids, array( $current_user->ID ) ), 'exclude' => $userids,
'show' => 'display_name_with_login', 'show' => 'display_name_with_login',
) )
); );

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.3-alpha-45805'; $wp_version = '5.3-alpha-45806';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.