Ticket #16166: 16166.users-first-pass.diff

File 16166.users-first-pass.diff, 3.9 KB (added by nacin, 2 years ago)
  • wp-admin/users.php

     
    4242 
    4343$update = ''; 
    4444 
    45 switch ( $wp_list_table->current_action() ) { 
     45if ( $doaction = $wp_list_table->current_action() ) { 
    4646 
     47switch ( $doaction ) { 
     48 
    4749/* Bulk Dropdown menu Role changes */ 
    4850case 'promote': 
    4951        check_admin_referer('bulk-users'); 
    5052 
    51         if ( empty($_REQUEST['users']) ) { 
    52                 wp_redirect($redirect); 
    53                 exit(); 
    54         } 
     53        if ( empty($_REQUEST['users']) ) 
     54                break; 
    5555 
    5656        $editable_roles = get_editable_roles(); 
    5757        if ( empty( $editable_roles[$_REQUEST['new_role']] ) ) 
     
    6565                if ( ! current_user_can('promote_user', $id) ) 
    6666                        wp_die(__('You can’t edit that user.')); 
    6767                // The new role of the current user must also have promote_users caps 
    68                 if ( $id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('promote_users') ) { 
     68                if ( $id == $current_user->ID && ! current_user_can('promote_users') ) { 
    6969                        $update = 'err_admin_role'; 
    7070                        continue; 
    7171                } 
     
    7878                $user->set_role($_REQUEST['new_role']); 
    7979        } 
    8080 
    81         wp_redirect(add_query_arg('update', $update, $redirect)); 
    82         exit(); 
     81        $redirect = add_query_arg( 'update', $update, $redirect ); 
    8382 
    8483break; 
    8584 
     
    8988 
    9089        check_admin_referer('delete-users'); 
    9190 
    92         if ( empty($_REQUEST['users']) ) { 
    93                 wp_redirect($redirect); 
    94                 exit(); 
    95         } 
     91        if ( empty($_REQUEST['users']) ) 
     92                break; 
    9693 
    9794        if ( ! current_user_can( 'delete_users' ) ) 
    9895                wp_die(__('You can’t delete users.')); 
     
    125122        } 
    126123 
    127124        $redirect = add_query_arg( array('delete_count' => $delete_count, 'update' => $update), $redirect); 
    128         wp_redirect($redirect); 
    129         exit(); 
    130125 
    131126break; 
    132127 
     
    136131 
    137132        check_admin_referer('bulk-users'); 
    138133 
    139         if ( empty($_REQUEST['users']) && empty($_REQUEST['user']) ) { 
    140                 wp_redirect($redirect); 
    141                 exit(); 
    142         } 
     134        if ( empty($_REQUEST['users']) && empty($_REQUEST['user']) ) 
     135                break; 
    143136 
    144137        if ( ! current_user_can( 'delete_users' ) ) 
    145138                $errors = new WP_Error( 'edit_users', __( 'You can’t delete users.' ) ); 
     
    149142        else 
    150143                $userids = $_REQUEST['users']; 
    151144 
     145        $redirect = false; 
     146 
    152147        include ('admin-header.php'); 
    153148?> 
    154149<form action="" method="post" name="updateusers" id="updateusers"> 
     
    191186</div> 
    192187</form> 
    193188<?php 
     189include('./admin-footer.php'); 
    194190 
    195191break; 
    196192 
    197193case 'doremove': 
    198194        check_admin_referer('remove-users'); 
    199195 
    200         if ( empty($_REQUEST['users']) ) { 
    201                 wp_redirect($redirect); 
    202                 exit; 
    203         } 
     196        if ( empty($_REQUEST['users']) ) 
     197                break; 
    204198 
    205199        if ( !current_user_can('remove_users')  ) 
    206200                die(__('You can&#8217;t remove users.')); 
     
    222216        } 
    223217 
    224218        $redirect = add_query_arg( array('update' => $update), $redirect); 
    225         wp_redirect($redirect); 
    226         exit; 
    227219 
    228220break; 
    229221 
     
    231223 
    232224        check_admin_referer('bulk-users'); 
    233225 
    234         if ( empty($_REQUEST['users']) && empty($_REQUEST['user']) ) { 
    235                 wp_redirect($redirect); 
    236                 exit(); 
    237         } 
     226        if ( empty($_REQUEST['users']) && empty($_REQUEST['user']) ) 
     227                break; 
    238228 
    239229        if ( !current_user_can('remove_users') ) 
    240230                $error = new WP_Error('edit_users', __('You can&#8217;t remove users.')); 
     
    244234        else 
    245235                $userids = $_REQUEST['users']; 
    246236 
     237        $redirect = false; 
     238 
    247239        include ('admin-header.php'); 
    248240?> 
    249241<form action="" method="post" name="updateusers" id="updateusers"> 
     
    279271</div> 
    280272</form> 
    281273<?php 
     274include('./admin-footer.php'); 
    282275 
    283276break; 
    284277 
    285278default: 
    286279 
    287         if ( !empty($_GET['_wp_http_referer']) ) { 
     280} // end of the $doaction switch 
     281 
     282        if ( $redirect ) 
     283                wp_redirect( $redirect ); 
     284        exit(); 
     285 
     286} // end of the $doaction if 
     287elseif ( !empty($_GET['_wp_http_referer']) ) { 
    288288                wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']))); 
    289289                exit; 
    290         } 
     290} 
    291291 
    292292        $wp_list_table->prepare_items(); 
    293293 
     
    378378<br class="clear" /> 
    379379</div> 
    380380<?php 
    381 break; 
    382381 
    383 } // end of the $doaction switch 
    384  
    385382include('./admin-footer.php');