WordPress.org

Make WordPress Core

Changeset 15496


Ignore:
Timestamp:
08/12/10 23:21:05 (4 years ago)
Author:
scribu
Message:

Introduce WP_List_Table::check_permissions() and WP_List_Table::prepare_items(). Fixes #14596; See #14579

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-ajax.php

    r15493 r15496  
    559559 
    560560    require_once( './includes/default-list-tables.php' ); 
    561     $table = new WP_Terms_Table( 'ajax' ); 
     561    $table = new WP_Terms_Table(); 
    562562 
    563563    $level = 0; 
     
    627627 
    628628    require_once( './includes/default-list-tables.php' ); 
    629     $table = new WP_Comments_Table( 'ajax' ); 
     629    $table = new WP_Comments_Table(); 
    630630 
    631631    global $comments; 
     
    660660 
    661661    require_once( './includes/default-list-tables.php' ); 
    662     $table = new WP_Comments_Table( 'ajax' ); 
     662    $table = new WP_Comments_Table(); 
    663663 
    664664    global $comments; 
     
    686686 
    687687    require_once( './includes/default-list-tables.php' ); 
    688     $table = new WP_Comments_Table( 'ajax' ); 
     688    $table = new WP_Comments_Table(); 
    689689 
    690690    $comment_post_ID = (int) $_POST['comment_post_ID']; 
     
    777777 
    778778    require_once( './includes/default-list-tables.php' ); 
    779     $table = new WP_Comments_Table( 'ajax' ); 
     779    $table = new WP_Comments_Table(); 
    780780 
    781781    ob_start(); 
     
    926926 
    927927    require_once( './includes/default-list-tables.php' ); 
    928     $table = new WP_Users_Table( 'ajax' ); 
     928    $table = new WP_Users_Table(); 
    929929 
    930930    $x = new WP_Ajax_Response( array( 
     
    12191219 
    12201220    require_once( './includes/default-list-tables.php' ); 
    1221     $table = new WP_Posts_Table( 'ajax' ); 
     1221    $table = new WP_Posts_Table(); 
    12221222 
    12231223    $mode = $_POST['post_view']; 
     
    12291229    check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' ); 
    12301230 
    1231     $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : false; 
    1232     if ( ! $taxonomy ) 
    1233         die( __('Cheatin’ uh?') ); 
    1234     $tax = get_taxonomy($taxonomy); 
    1235  
    1236     if ( ! current_user_can( $tax->cap->edit_terms ) ) 
    1237         die( __('Cheatin’ uh?') ); 
     1231    require_once( './includes/default-list-tables.php' ); 
     1232    $table = new WP_Terms_Table(); 
     1233 
     1234    $table->check_permissions('edit'); 
    12381235 
    12391236    if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) ) 
    12401237        die(-1); 
    1241  
    1242     $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag'; 
    12431238 
    12441239    $tag = get_term( $id, $taxonomy ); 
     
    12531248            die( __('Item not updated.') ); 
    12541249        } 
    1255  
    1256         set_current_screen( 'edit-' . $taxonomy ); 
    1257  
    1258         require_once( './includes/default-list-tables.php' ); 
    1259         $table = new WP_Terms_Table( 'ajax' ); 
    12601250 
    12611251        echo $table->single_row( $tag, 0, $taxonomy ); 
  • trunk/wp-admin/edit-comments.php

    r15491 r15496  
    1010require_once('./admin.php'); 
    1111 
    12 if ( !current_user_can('edit_posts') ) 
    13     wp_die(__('Cheatin’ uh?')); 
     12require_once( './includes/default-list-tables.php' ); 
     13 
     14$table = new WP_Comments_Table; 
     15$table->check_permissions(); 
    1416 
    1517if ( isset( $_REQUEST['doaction'] ) ||  isset( $_REQUEST['doaction2'] ) || isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) ) { 
     
    9698} 
    9799 
    98 require_once( './includes/default-list-tables.php' ); 
    99  
    100 $table = new WP_Comments_Table; 
     100$table->prepare_items(); 
    101101 
    102102wp_enqueue_script('admin-comments'); 
  • trunk/wp-admin/edit-tags.php

    r15491 r15496  
    1313 
    1414$table = new WP_Terms_Table; 
     15$table->check_permissions(); 
    1516 
    1617$title = $tax->labels->name; 
     
    151152     exit; 
    152153} 
     154 
     155$table->prepare_items(); 
    153156 
    154157wp_enqueue_script('admin-tags'); 
  • trunk/wp-admin/edit.php

    r15491 r15496  
    1313 
    1414$table = new WP_Posts_Table; 
     15$table->check_permissions(); 
    1516 
    1617// Back-compat for viewing comments of an entry 
     
    118119    $post_new_file = 'post-new.php'; 
    119120} 
     121 
     122$table->prepare_items(); 
    120123 
    121124wp_enqueue_script('inline-edit-post'); 
  • trunk/wp-admin/includes/default-list-tables.php

    r15491 r15496  
    2323    var $_hierarchical_display; 
    2424 
    25     function WP_Posts_Table( $context = 'normal' ) { 
    26         global $post_type_object, $post_type, $avail_post_stati, $wp_query, $per_page, $mode, $current_screen; 
     25    function WP_Posts_Table() { 
     26        global $post_type_object, $post_type, $current_screen; 
    2727 
    2828        if ( !isset( $_REQUEST['post_type'] ) ) 
     
    3636        $post_type_object = get_post_type_object( $post_type ); 
    3737 
    38         if ( !current_user_can( $post_type_object->cap->edit_posts ) ) 
    39             wp_die( __( 'Cheatin’ uh?' ) ); 
    40  
    4138        parent::WP_List_Table( array( 
    4239            'screen' => $current_screen, 
    4340            'plural' => 'posts', 
    4441        ) ); 
    45  
    46         if ( 'normal' != $context ) 
    47             return; 
     42    } 
     43 
     44    function check_permissions() { 
     45        global $post_type_object; 
     46 
     47        if ( !current_user_can( $post_type_object->cap->edit_posts ) ) 
     48            wp_die( __( 'Cheatin’ uh?' ) ); 
     49    } 
     50 
     51    function prepare_items() { 
     52        global $post_type_object, $post_type, $avail_post_stati, $wp_query, $per_page, $mode; 
    4853 
    4954        $avail_post_stati = wp_edit_posts_query(); 
     
    10731078class WP_Media_Table extends WP_List_Table { 
    10741079 
    1075     function WP_Media_Table( $context = 'normal' ) { 
    1076         global $wpdb, $wp_query, $detached, $post_mime_types, $avail_post_mime_types; 
    1077  
    1078         if ( isset( $_REQUEST['find_detached'] ) ) { 
    1079             if ( !current_user_can( 'edit_posts' ) ) 
    1080                 wp_die( __( 'You are not allowed to scan for lost attachments.' ) ); 
    1081  
    1082             $lost = $wpdb->get_col( " 
    1083                 SELECT ID FROM $wpdb->posts 
    1084                 WHERE post_type = 'attachment' AND post_parent > '0' 
    1085                 AND post_parent NOT IN ( 
    1086                     SELECT ID FROM $wpdb->posts 
    1087                     WHERE post_type NOT IN ( 'attachment', '" . join( "', '", get_post_types( array( 'public' => false ) ) ) . "' ) 
    1088                 ) 
    1089             " ); 
    1090  
    1091             $_REQUEST['detached'] = 1; 
    1092         } 
    1093  
    1094         $detached = isset( $_REQUEST['detached'] ); 
     1080    function WP_Media_Table() { 
     1081        global $detached; 
     1082 
     1083        $detached = isset( $_REQUEST['detached'] ) || isset( $_REQUEST['find_detached'] ); 
    10951084 
    10961085        parent::WP_List_Table( array( 
     
    10981087            'plural' => 'media' 
    10991088        ) ); 
    1100  
    1101         if ( 'normal' != $context ) 
    1102             return; 
     1089    } 
     1090 
     1091    function check_permissions() { 
     1092        if ( !current_user_can('upload_files') ) 
     1093            wp_die( __( 'You do not have permission to upload files.' ) ); 
     1094    }        
     1095 
     1096    function prepare_items() { 
     1097        global $lost, $wpdb, $wp_query, $post_mime_types, $avail_post_mime_types; 
    11031098 
    11041099        $q = $_REQUEST; 
     
    13581353        } else { 
    13591354?> 
    1360             <td <?php echo $attributes ?>><?php _e( '( Unattached )' ); ?><br /> 
     1355            <td <?php echo $attributes ?>><?php _e( '(Unattached)' ); ?><br /> 
    13611356            <a class="hide-if-no-js" onclick="findPosts.open( 'media[]','<?php echo $post->ID ?>' );return false;" href="#the-list"><?php _e( 'Attach' ); ?></a></td> 
    13621357<?php 
     
    15031498    var $callback_args; 
    15041499 
    1505     function WP_Terms_Table( $context = 'normal' ) { 
     1500    function WP_Terms_Table() { 
    15061501        global $post_type, $taxonomy, $tax, $current_screen; 
     1502 
     1503        wp_reset_vars( array( 'action', 'taxonomy', 'post_type' ) ); 
     1504 
     1505        if ( empty( $taxonomy ) ) 
     1506            $taxonomy = 'post_tag'; 
     1507 
     1508        if ( !taxonomy_exists( $taxonomy ) ) 
     1509            wp_die( __( 'Invalid taxonomy' ) ); 
     1510 
     1511        $tax = get_taxonomy( $taxonomy ); 
     1512 
     1513        if ( empty( $post_type ) || !in_array( $post_type, get_post_types( array( 'public' => true ) ) ) ) 
     1514            $post_type = 'post'; 
     1515 
     1516        if ( !isset( $current_screen ) ) 
     1517            set_current_screen( 'edit-' . $taxonomy ); 
    15071518 
    15081519        parent::WP_List_Table( array( 
     
    15111522            'singular' => 'tag', 
    15121523        ) ); 
    1513  
    1514         if ( 'normal' != $context ) 
    1515             return; 
    1516  
    1517         wp_reset_vars( array( 'action', 'tag', 'taxonomy', 'post_type' ) ); 
    1518  
    1519         if ( empty( $taxonomy ) ) 
    1520             $taxonomy = 'post_tag'; 
    1521  
    1522         if ( !taxonomy_exists( $taxonomy ) ) 
    1523             wp_die( __( 'Invalid taxonomy' ) ); 
    1524  
    1525         $tax = get_taxonomy( $taxonomy ); 
    1526  
    1527         if ( ! current_user_can( $tax->cap->manage_terms ) ) 
     1524    } 
     1525 
     1526    function check_permissions( $type = 'manage' ) { 
     1527        global $tax; 
     1528 
     1529        $cap = 'manage' == $type ? $tax->cap->manage_terms : $tax->cap->edit_terms; 
     1530 
     1531        if ( !current_user_can( $tax->cap->manage_terms ) ) 
    15281532            wp_die( __( 'Cheatin&#8217; uh?' ) ); 
    1529  
    1530         if ( empty( $post_type ) || !in_array( $post_type, get_post_types( array( 'public' => true ) ) ) ) 
    1531             $post_type = 'post'; 
     1533    } 
     1534 
     1535    function prepare_items() { 
     1536        global $taxonomy; 
    15321537 
    15331538        $tags_per_page = (int) get_user_option( 'edit_' .  $taxonomy . '_per_page' ); 
     
    18521857class WP_Users_Table extends WP_List_Table { 
    18531858 
    1854     function WP_Users_Table( $context = 'normal' ) { 
     1859    function WP_Users_Table() { 
    18551860        global $role, $usersearch; 
    18561861 
     
    18591864            'plural' => 'users' 
    18601865        ) ); 
    1861  
    1862         if ( 'normal' != $context ) 
    1863             return; 
    1864  
     1866    } 
     1867 
     1868    function check_permissions() { 
     1869        if ( !current_user_can('list_users') ) 
     1870            wp_die(__('Cheatin&#8217; uh?')); 
     1871    } 
     1872 
     1873    function prepare_items() { 
    18651874        $usersearch = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : ''; 
    18661875 
     
    20902099class WP_Comments_Table extends WP_List_Table { 
    20912100 
    2092     function WP_Comments_Table( $context = 'normal' ) { 
    2093         global $comments, $extra_comments, $total_comments, $post_id, $comment_status, $mode; 
    2094  
    2095         $mode = ( empty( $_REQUEST['mode'] ) ) ? 'detail' : $_REQUEST['mode']; 
    2096  
     2101    function WP_Comments_Table() { 
    20972102        parent::WP_List_Table( array( 
    20982103            'screen' => 'edit-comments', 
    20992104            'plural' => 'comments' 
    21002105        ) ); 
    2101  
    2102         if ( 'normal' != $context ) 
    2103             return; 
     2106    } 
     2107 
     2108    function check_permissions() { 
     2109        if ( !current_user_can('edit_posts') ) 
     2110            wp_die(__('Cheatin&#8217; uh?')); 
     2111    } 
     2112 
     2113    function prepare_items() { 
     2114        global $comments, $extra_comments, $total_comments, $post_id, $comment_status, $mode; 
    21042115 
    21052116        $post_id = isset( $_REQUEST['post_ID'] ) ? absint( $_REQUEST['post_ID'] ) : 0; 
     2117 
     2118        $mode = ( empty( $_REQUEST['mode'] ) ) ? 'detail' : $_REQUEST['mode']; 
    21062119 
    21072120        $comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all'; 
     
    25092522 
    25102523    function WP_Links_Table() { 
     2524        parent::WP_List_Table( array( 
     2525            'screen' => 'link-manager', 
     2526            'plural' => 'bookmarks', 
     2527        ) ); 
     2528    } 
     2529 
     2530    function check_permissions() { 
     2531        if ( ! current_user_can( 'manage_links' ) ) 
     2532            wp_die( __( 'You do not have sufficient permissions to edit the links for this site.' ) ); 
     2533    } 
     2534 
     2535    function prepare_items() { 
    25112536        global $cat_id, $s, $orderby, $order; 
    25122537 
     
    25252550 
    25262551        $this->items = get_bookmarks( $args ); 
    2527  
    2528         parent::WP_List_Table( array( 
    2529             'screen' => 'link-manager', 
    2530             'plural' => 'bookmarks', 
    2531         ) ); 
    2532     } 
     2552    }        
    25332553 
    25342554    function no_items() { 
     
    26912711 
    26922712    function WP_Sites_Table() { 
     2713        parent::WP_List_Table( array( 
     2714            'screen' => 'ms-sites', 
     2715            'plural' => 'sites', 
     2716        ) ); 
     2717    } 
     2718 
     2719    function check_permissions() {       
     2720        if ( ! current_user_can( 'manage_sites' ) ) 
     2721            wp_die( __( 'You do not have permission to access this page.' ) ); 
     2722    } 
     2723 
     2724    function prepare_items() { 
    26932725        global $s, $mode, $wpdb; 
    26942726 
    26952727        $mode = ( empty( $_REQUEST['mode'] ) ) ? 'list' : $_REQUEST['mode']; 
    2696  
    2697         parent::WP_List_Table( array( 
    2698             'callback' => 'site_rows', 
    2699             'screen' => 'ms-sites', 
    2700         ) ); 
    27012728 
    27022729        $pagenum = $this->get_pagenum(); 
     
    29793006 
    29803007    function WP_MS_Users_Table() { 
    2981         global $s, $mode, $wpdb; 
    2982  
    2983         $mode = ( empty( $_REQUEST['mode'] ) ) ? 'list' : $_REQUEST['mode']; 
    2984  
    29853008        parent::WP_List_Table( array( 
    29863009            'screen' => 'ms-users', 
    29873010        ) ); 
     3011    } 
     3012 
     3013    function check_permissions() {           
     3014        if ( !is_multisite() ) 
     3015            wp_die( __( 'Multisite support is not enabled.' ) ); 
     3016     
     3017        if ( ! current_user_can( 'manage_network_users' ) ) 
     3018            wp_die( __( 'You do not have permission to access this page.' ) ); 
     3019    } 
     3020 
     3021    function prepare_items() { 
     3022        global $s, $mode, $wpdb; 
     3023 
     3024        $mode = ( empty( $_REQUEST['mode'] ) ) ? 'list' : $_REQUEST['mode']; 
    29883025 
    29893026        $pagenum = $this->get_pagenum(); 
     
    32023239 
    32033240    function WP_Plugins_Table() { 
    3204         global $status, $plugins, $totals, $page, $orderby, $order, $s; 
    3205  
    32063241        parent::WP_List_Table( array( 
    32073242            'screen' => 'plugins', 
    32083243            'plural' => 'plugins', 
    32093244        ) ); 
     3245    } 
     3246 
     3247    function check_permissions() { 
     3248        if ( is_multisite() ) { 
     3249            $menu_perms = get_site_option( 'menu_items', array() ); 
     3250 
     3251            if ( empty( $menu_perms['plugins'] ) ) { 
     3252                if ( !is_super_admin() ) 
     3253                    wp_die( __( 'Cheatin&#8217; uh?' ) ); 
     3254            } 
     3255        } 
     3256 
     3257        if ( !current_user_can('activate_plugins') ) 
     3258            wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) ); 
     3259    } 
     3260 
     3261    function prepare_items() { 
     3262        global $status, $plugins, $totals, $page, $orderby, $order, $s; 
    32103263 
    32113264        wp_reset_vars( array( 'orderby', 'order', 's' ) ); 
    3212  
    3213         $default_status = get_user_option( 'plugins_last_view' ); 
    3214         if ( empty( $default_status ) ) 
    3215             $default_status = 'all'; 
    3216         $status = isset( $_REQUEST['plugin_status'] ) ? $_REQUEST['plugin_status'] : $default_status; 
    3217         if ( !in_array( $status, array( 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'network', 'mustuse', 'dropins', 'search' ) ) ) 
    3218             $status = 'all'; 
    3219         if ( $status != $default_status && 'search' != $status ) 
    3220             update_user_meta( get_current_user_id(), 'plugins_last_view', $status ); 
    32213265 
    32223266        $page = $this->get_pagenum(); 
     
    35393583 
    35403584    function WP_Plugin_Install_Table() { 
    3541         include( ABSPATH . 'wp-admin/includes/plugin-install.php' ); 
    3542  
    3543         global $tabs, $tab, $paged, $type, $term; 
    3544  
    35453585        parent::WP_List_Table( array( 
    35463586            'screen' => 'plugin-install', 
    35473587        ) ); 
     3588    } 
     3589 
     3590    function check_permissions() { 
     3591        if ( ! current_user_can('install_plugins') ) 
     3592            wp_die(__('You do not have sufficient permissions to install plugins on this site.'));       
     3593    } 
     3594 
     3595    function prepare_items() { 
     3596        include( ABSPATH . 'wp-admin/includes/plugin-install.php' ); 
     3597 
     3598        global $tabs, $tab, $paged, $type, $term; 
    35483599 
    35493600        wp_reset_vars( array( 'tab' ) ); 
     
    37443795 
    37453796    function WP_Themes_Table() { 
     3797        parent::__construct( array( 
     3798            'screen' => 'themes', 
     3799        ) ); 
     3800    } 
     3801 
     3802    function check_permissions() { 
     3803        if ( !current_user_can('switch_themes') && !current_user_can('edit_theme_options') ) 
     3804            wp_die( __( 'Cheatin&#8217; uh?' ) ); 
     3805    } 
     3806     
     3807    function prepare_items() { 
    37463808        global $ct; 
    37473809 
     
    37583820 
    37593821        $this->items = array_slice( $themes, $start, $per_page ); 
    3760  
    3761         parent::__construct( array( 
    3762             'screen' => 'themes', 
    3763         ) ); 
    37643822 
    37653823        $this->set_pagination_args( array( 
     
    38863944 
    38873945    function WP_Theme_Install_Table() { 
    3888         include( ABSPATH . 'wp-admin/includes/theme-install.php' ); 
    3889  
    3890         global $tabs, $tab, $paged, $type, $term, $theme_field_defaults; 
    3891  
    38923946        parent::WP_List_Table( array( 
    38933947            'screen' => 'theme-install', 
    38943948        ) ); 
    3895  
     3949    } 
     3950 
     3951    function check_permissions() { 
     3952        if ( ! current_user_can('install_themes') ) 
     3953            wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) ); 
     3954    } 
     3955 
     3956    function prepare_items() { 
     3957        include( ABSPATH . 'wp-admin/includes/theme-install.php' ); 
     3958 
     3959        global $tabs, $tab, $paged, $type, $term, $theme_field_defaults;         
     3960         
    38963961        wp_reset_vars( array( 'tab' ) ); 
    38973962 
  • trunk/wp-admin/includes/list-table.php

    r15491 r15496  
    9292            add_action( 'admin_footer', array( $this, '_js_vars' ) ); 
    9393        } 
     94    } 
     95 
     96    /** 
     97     * Checks the current user's permissions 
     98     * @uses wp_die() 
     99     * 
     100     * @since 3.1.0 
     101     * @access public 
     102     */ 
     103    function check_permissions() { 
     104        die( 'function WP_List_Table::check_permissions() must be over-ridden in a sub-class.' ); 
     105    } 
     106 
     107    /** 
     108     * Prepares the list of items for displaying. 
     109     * @uses WP_List_Table::set_pagination_args() 
     110     * 
     111     * @since 3.1.0 
     112     * @access public 
     113     */ 
     114    function prepare_items() { 
     115        die( 'function WP_List_Table::prepare_items() must be over-ridden in a sub-class.' ); 
    94116    } 
    95117 
     
    569591     */ 
    570592    function ajax_response() { 
     593        $this->check_permissions(); 
     594        $this->prepare_items(); 
     595 
    571596        extract( $this->_args ); 
    572597        extract( $this->_pagination_args ); 
  • trunk/wp-admin/link-manager.php

    r15491 r15496  
    1010require_once ('admin.php'); 
    1111 
     12require_once( './includes/default-list-tables.php' ); 
     13 
     14$table = new WP_Links_Table; 
     15$table->check_permissions(); 
     16 
    1217// Handle bulk deletes 
    1318if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['linkcheck'] ) ) { 
     
    1520 
    1621    $doaction = $_REQUEST['action'] ? $_REQUEST['action'] : $_REQUEST['action2']; 
    17  
    18     if ( ! current_user_can( 'manage_links' ) ) 
    19         wp_die( __( 'You do not have sufficient permissions to edit the links for this site.' ) ); 
    2022 
    2123    if ( 'delete' == $doaction ) { 
     
    3436} 
    3537 
    36 require_once( './includes/default-list-tables.php' ); 
    37  
    38 $table = new WP_Links_Table; 
     38$table->prepare_items(); 
    3939 
    4040$title = __('Links'); 
  • trunk/wp-admin/network/sites.php

    r15494 r15496  
    1313    wp_die( __( 'Multisite support is not enabled.' ) ); 
    1414 
    15 if ( ! current_user_can( 'manage_sites' ) ) 
    16     wp_die( __( 'You do not have permission to access this page.' ) ); 
     15require_once( '../includes/default-list-tables.php' ); 
     16 
     17$table = new WP_Sites_Table; 
     18$table->check_permissions(); 
    1719 
    1820$title = __( 'Sites' ); 
     
    349351    case 'list': 
    350352    default: 
    351         require_once( '../includes/default-list-tables.php' ); 
    352  
    353         $table = new WP_Sites_Table; 
     353        $table->prepare_items(); 
    354354 
    355355        require_once( '../admin-header.php' ); 
  • trunk/wp-admin/network/users.php

    r15494 r15496  
    1010require_once( './admin.php' ); 
    1111 
    12 if ( !is_multisite() ) 
    13     wp_die( __( 'Multisite support is not enabled.' ) ); 
     12require_once( '../includes/default-list-tables.php' ); 
    1413 
    15 if ( ! current_user_can( 'manage_network_users' ) ) 
    16     wp_die( __( 'You do not have permission to access this page.' ) ); 
     14$table = new WP_MS_Users_Table; 
     15$table->check_permissions(); 
     16$table->prepare_items(); 
    1717 
    1818$title = __( 'Users' ); 
     
    3232    '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>' 
    3333); 
    34  
    35 require_once( '../includes/default-list-tables.php' ); 
    36  
    37 $table = new WP_MS_Users_Table; 
    3834 
    3935require_once( '../admin-header.php' ); 
  • trunk/wp-admin/plugin-install.php

    r15491 r15496  
    1010require_once('./admin.php'); 
    1111 
    12 if ( ! current_user_can('install_plugins') ) 
    13     wp_die(__('You do not have sufficient permissions to install plugins on this site.')); 
    14  
    1512require_once( './includes/default-list-tables.php' ); 
    1613 
    1714$table = new WP_Plugin_Install_Table; 
     15$table->check_permissions(); 
     16$table->prepare_items(); 
    1817 
    1918$title = __('Install Plugins'); 
  • trunk/wp-admin/plugins.php

    r15492 r15496  
    99/** WordPress Administration Bootstrap */ 
    1010require_once('./admin.php'); 
    11 if ( is_multisite() ) { 
    12     $menu_perms = get_site_option( 'menu_items', array() ); 
    13          
    14     if ( empty( $menu_perms['plugins'] ) ) {  
    15         if ( ! is_super_admin() ) 
    16             wp_die( __( 'Cheatin&#8217; uh?' ) ); 
    17     } 
    18 } 
    19  
    20 if ( ! current_user_can( 'activate_plugins' ) ) 
    21     wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) ); 
     11 
     12require_once( ABSPATH . 'wp-admin/includes/default-list-tables.php' ); 
     13 
     14$table = new WP_Plugins_Table; 
     15$table->check_permissions(); 
    2216 
    2317if ( isset($_POST['clear-recent-list']) ) 
     
    300294} 
    301295 
    302 require_once( ABSPATH . 'wp-admin/includes/default-list-tables.php' ); 
    303  
    304 $table = new WP_Plugins_Table; 
     296$default_status = get_user_option( 'plugins_last_view' ); 
     297if ( empty( $default_status ) ) 
     298    $default_status = 'all'; 
     299$status = isset( $_REQUEST['plugin_status'] ) ? $_REQUEST['plugin_status'] : $default_status; 
     300if ( !in_array( $status, array( 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'network', 'mustuse', 'dropins', 'search' ) ) ) 
     301    $status = 'all'; 
     302if ( $status != $default_status && 'search' != $status ) 
     303    update_user_meta( get_current_user_id(), 'plugins_last_view', $status ); 
     304 
     305$table->prepare_items(); 
    305306 
    306307wp_enqueue_script('plugin-install'); 
  • trunk/wp-admin/theme-install.php

    r15491 r15496  
    1010require_once('./admin.php'); 
    1111 
    12 if ( ! current_user_can('install_themes') ) 
    13     wp_die(__('You do not have sufficient permissions to install themes on this site.')); 
    14  
    1512require_once( './includes/default-list-tables.php' ); 
    1613 
    1714$table = new WP_Theme_Install_Table; 
     15$table->check_permissions(); 
     16$table->prepare_items(); 
    1817 
    1918$title = __('Install Themes'); 
  • trunk/wp-admin/themes.php

    r15491 r15496  
    1010require_once('./admin.php'); 
    1111 
    12 if ( !current_user_can('switch_themes') && !current_user_can('edit_theme_options') ) 
    13     wp_die( __( 'Cheatin&#8217; uh?' ) ); 
     12require_once( './includes/default-list-tables.php' ); 
     13 
     14$table = new WP_Themes_Table; 
     15$table->check_permissions(); 
    1416 
    1517if ( current_user_can('switch_themes') && isset($_GET['action']) ) { 
     
    2931} 
    3032 
    31 require_once( './includes/default-list-tables.php' ); 
    32  
    33 $table = new WP_Themes_Table; 
     33$table->prepare_items(); 
    3434 
    3535$title = __('Manage Themes'); 
  • trunk/wp-admin/upload.php

    r15491 r15496  
    1010require_once( './admin.php' ); 
    1111 
    12 if ( !current_user_can('upload_files') ) 
    13     wp_die(__('You do not have permission to upload files.')); 
     12require_once( './includes/default-list-tables.php' ); 
     13 
     14$table = new WP_Media_Table; 
     15$table->check_permissions(); 
    1416 
    1517// Handle bulk actions 
    16 if ( isset( $_REQUEST['found_post_id'] ) && isset( $_REQUEST['media'] ) ) { 
     18if ( isset($_REQUEST['find_detached']) ) { 
     19    check_admin_referer('bulk-media'); 
     20 
     21    if ( !current_user_can('edit_posts') ) 
     22        wp_die( __('You are not allowed to scan for lost attachments.') ); 
     23 
     24    $lost = $wpdb->get_col( " 
     25        SELECT ID FROM $wpdb->posts 
     26        WHERE post_type = 'attachment' AND post_parent > '0' 
     27        AND post_parent NOT IN ( 
     28            SELECT ID FROM $wpdb->posts 
     29            WHERE post_type NOT IN ( 'attachment', '" . join( "', '", get_post_types( array( 'public' => false ) ) ) . "' ) 
     30        ) 
     31    " ); 
     32 
     33    $_REQUEST['detached'] = 1; 
     34 
     35} elseif ( isset( $_REQUEST['found_post_id'] ) && isset( $_REQUEST['media'] ) ) { 
    1736    check_admin_referer( 'bulk-media' ); 
    1837 
     
    112131} 
    113132 
    114 require_once( './includes/default-list-tables.php' ); 
    115  
    116 $table = new WP_Media_Table; 
     133$table->prepare_items(); 
    117134 
    118135$title = __('Media Library'); 
  • trunk/wp-admin/users.php

    r15491 r15496  
    1313require_once( ABSPATH . WPINC . '/registration.php'); 
    1414 
    15 if ( !current_user_can('list_users') ) 
    16     wp_die(__('Cheatin&#8217; uh?')); 
     15require_once( './includes/default-list-tables.php' ); 
     16 
     17$table = new WP_Users_Table; 
     18$table->check_permissions(); 
    1719 
    1820$title = __('Users'); 
     
    307309    } 
    308310 
    309     require_once( './includes/default-list-tables.php' ); 
    310  
    311     $table = new WP_Users_Table; 
     311    $table->prepare_items(); 
    312312 
    313313    include('./admin-header.php'); 
  • trunk/wp-includes/functions.php

    r15491 r15496  
    26572657 */ 
    26582658function wp_die( $message, $title = '', $args = array() ) { 
     2659    if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) 
     2660        die('-1'); 
     2661 
    26592662    if ( function_exists( 'apply_filters' ) ) { 
    26602663        $function = apply_filters( 'wp_die_handler', '_default_wp_die_handler'); 
    2661     }else { 
     2664    } else { 
    26622665        $function = '_default_wp_die_handler'; 
    26632666    } 
Note: See TracChangeset for help on using the changeset viewer.