WordPress.org

Make WordPress Core

Changeset 15542


Ignore:
Timestamp:
08/27/10 01:07:21 (4 years ago)
Author:
scribu
Message:

Deprecated get_editable_user_ids() altogether, along with similar, unused functions. See #14572

Location:
trunk/wp-admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/edit-form-advanced.php

    r15539 r15542  
    150150 
    151151if ( post_type_supports($post_type, 'author') ) { 
    152     $_editable_user_ids = get_editable_user_ids( $current_user->id, true, $post_type ); // TODO: ROLE SYSTEM 
    153     if ( $post->post_author && !in_array($post->post_author, $_editable_user_ids) ) 
    154         $_editable_user_ids[] = $post->post_author; 
    155  
    156     if ( !empty($_editable_user_ids) || is_super_admin() ) 
     152    if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) ) 
    157153        add_meta_box('authordiv', __('Author'), 'post_author_meta_box', $post_type, 'normal', 'core'); 
    158154} 
  • trunk/wp-admin/includes/default-list-tables.php

    r15527 r15542  
    669669 
    670670        if ( post_type_supports( $screen->post_type, 'author' ) ) : 
    671             $authors = get_editable_user_ids( get_current_user_id(), true, $screen->post_type ); // TODO: ROLE SYSTEM 
    672671            $authors_dropdown = ''; 
    673             if ( $authors && count( $authors ) > 1 ) : 
    674                 $users_opt = array( 'include' => $authors, 'name' => 'post_author', 'class'=> 'authors', 'multi' => 1, 'echo' => 0 ); 
     672 
     673            if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) ) : 
     674                $users_opt = array(  
     675                    'name' => 'post_author',  
     676                    'class'=> 'authors',  
     677                    'multi' => 1,  
     678                    'echo' => 0  
     679                ); 
    675680                if ( $bulk ) 
    676681                    $users_opt['show_option_none'] = __( '— No Change —' ); 
     
    679684                $authors_dropdown .= wp_dropdown_users( $users_opt ); 
    680685                $authors_dropdown .= '</label>'; 
    681  
    682686            endif; // authors 
    683687    ?> 
  • trunk/wp-admin/includes/deprecated.php

    r15540 r15542  
    240240 
    241241/** 
     242 * @deprecated 3.1.0 
     243 * 
     244 * @param int $user_id User ID. 
     245 * @param bool $exclude_zeros Optional, default is true. Whether to exclude zeros. 
     246 * @return unknown 
     247 */ 
     248function get_editable_user_ids( $user_id, $exclude_zeros = true, $post_type = 'post' ) { 
     249    _deprecated_function( __FUNCTION__, '3.1' ); 
     250 
     251    global $wpdb; 
     252 
     253    $user = new WP_User( $user_id ); 
     254    $post_type_obj = get_post_type_object($post_type); 
     255 
     256    if ( ! $user->has_cap($post_type_obj->cap->edit_others_posts) ) { 
     257        if ( $user->has_cap($post_type_obj->cap->edit_posts) || ! $exclude_zeros ) 
     258            return array($user->id); 
     259        else 
     260            return array(); 
     261    } 
     262 
     263    if ( !is_multisite() ) 
     264        $level_key = $wpdb->get_blog_prefix() . 'user_level'; 
     265    else 
     266        $level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels 
     267 
     268    $query = $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s", $level_key); 
     269    if ( $exclude_zeros ) 
     270        $query .= " AND meta_value != '0'"; 
     271 
     272    return $wpdb->get_col( $query ); 
     273} 
     274 
     275/** 
     276 * @deprecated 3.1.0 
     277 */ 
     278function get_nonauthor_user_ids() { 
     279    _deprecated_function( __FUNCTION__, '3.1' ); 
     280 
     281    global $wpdb; 
     282 
     283    if ( !is_multisite() ) 
     284        $level_key = $wpdb->get_blog_prefix() . 'user_level'; 
     285    else 
     286        $level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels 
     287 
     288    return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value = '0'", $level_key) ); 
     289} 
     290 
     291/** 
     292 * Retrieve editable posts from other users. 
     293 * 
     294 * @deprecated 3.1.0 
     295 * 
     296 * @param int $user_id User ID to not retrieve posts from. 
     297 * @param string $type Optional, defaults to 'any'. Post type to retrieve, can be 'draft' or 'pending'. 
     298 * @return array List of posts from others. 
     299 */ 
     300function get_others_unpublished_posts($user_id, $type='any') { 
     301    _deprecated_function( __FUNCTION__, '3.1' ); 
     302 
     303    global $wpdb; 
     304 
     305    $editable = get_editable_user_ids( $user_id ); 
     306 
     307    if ( in_array($type, array('draft', 'pending')) ) 
     308        $type_sql = " post_status = '$type' "; 
     309    else 
     310        $type_sql = " ( post_status = 'draft' OR post_status = 'pending' ) "; 
     311 
     312    $dir = ( 'pending' == $type ) ? 'ASC' : 'DESC'; 
     313 
     314    if ( !$editable ) { 
     315        $other_unpubs = ''; 
     316    } else { 
     317        $editable = join(',', $editable); 
     318        $other_unpubs = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title, post_author FROM $wpdb->posts WHERE post_type = 'post' AND $type_sql AND post_author IN ($editable) AND post_author != %d ORDER BY post_modified $dir", $user_id) ); 
     319    } 
     320 
     321    return apply_filters('get_others_drafts', $other_unpubs); 
     322} 
     323 
     324/** 
     325 * Retrieve drafts from other users. 
     326 * 
     327 * @deprecated 3.1.0 
     328 * 
     329 * @param int $user_id User ID. 
     330 * @return array List of drafts from other users. 
     331 */ 
     332function get_others_drafts($user_id) { 
     333    _deprecated_function( __FUNCTION__, '3.1' ); 
     334 
     335    return get_others_unpublished_posts($user_id, 'draft'); 
     336} 
     337 
     338/** 
     339 * Retrieve pending review posts from other users. 
     340 * 
     341 * @deprecated 3.1.0 
     342 * 
     343 * @param int $user_id User ID. 
     344 * @return array List of posts with pending review post type from other users. 
     345 */ 
     346function get_others_pending($user_id) { 
     347    _deprecated_function( __FUNCTION__, '3.1' ); 
     348 
     349    return get_others_unpublished_posts($user_id, 'pending'); 
     350} 
     351 
     352/** 
    242353 * Register column headers for a particular screen. 
    243354 * 
  • trunk/wp-admin/includes/meta-boxes.php

    r15541 r15542  
    506506 */ 
    507507function post_author_meta_box($post) { 
    508     global $user_ID, $_editable_user_ids; 
    509  
    510 ?> 
    511 <label class="screen-reader-text" for="post_author_override"><?php _e('Author'); ?></label><?php wp_dropdown_users( array('include' => $_editable_user_ids, 'name' => 'post_author_override', 'selected' => empty($post->ID) ? $user_ID : $post->post_author) ); ?> 
    512 <?php 
     508    global $user_ID; 
     509 
     510?> 
     511<label class="screen-reader-text" for="post_author_override"><?php _e('Author'); ?></label> 
     512<?php 
     513    wp_dropdown_users( array(  
     514        'name' => 'post_author_override',  
     515        'selected' => empty($post->ID) ? $user_ID : $post->post_author 
     516    ) ); 
    513517} 
    514518 
  • trunk/wp-admin/includes/user.php

    r15540 r15542  
    190190 
    191191/** 
    192  * {@internal Missing Short Description}} 
    193  * 
    194  * {@internal Missing Long Description}} 
    195  * 
    196  * @since unknown 
    197  * 
    198  * @param int $user_id User ID. 
    199  * @param bool $deprecated Not used. 
    200  * @return array 
    201  */ 
    202 function get_editable_user_ids( $user_id, $deprecated = true, $post_type = 'post' ) { 
    203     global $wpdb; 
    204  
    205     if ( !$deprecated ) 
    206         _deprecated_argument( __FUNCTION__, '3.1.0' ); 
    207  
    208     $user = new WP_User( $user_id ); 
    209     $post_type_obj = get_post_type_object($post_type); 
    210  
    211     if ( ! $user->has_cap($post_type_obj->cap->edit_others_posts) ) { 
    212         if ( $user->has_cap($post_type_obj->cap->edit_posts) || ! $exclude_zeros ) 
    213             return array($user->id); 
    214         else 
    215             return array(); 
    216     } 
    217  
    218     return get_users( array('fields' => 'ids') ); 
    219 } 
    220  
    221 /** 
    222192 * Fetch a filtered list of user roles that the current user is 
    223193 * allowed to edit. 
     
    242212 
    243213    return $editable_roles; 
    244 } 
    245  
    246 /** 
    247  * {@internal Missing Short Description}} 
    248  * 
    249  * {@internal Missing Long Description}} 
    250  * 
    251  * @since unknown 
    252  * 
    253  * @return unknown 
    254  */ 
    255 function get_nonauthor_user_ids() { 
    256     global $wpdb; 
    257  
    258     if ( !is_multisite() ) 
    259         $level_key = $wpdb->get_blog_prefix() . 'user_level'; 
    260     else 
    261         $level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels 
    262  
    263     return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value = '0'", $level_key) ); 
    264 } 
    265  
    266 /** 
    267  * Retrieve editable posts from other users. 
    268  * 
    269  * @since unknown 
    270  * 
    271  * @param int $user_id User ID to not retrieve posts from. 
    272  * @param string $type Optional, defaults to 'any'. Post type to retrieve, can be 'draft' or 'pending'. 
    273  * @return array List of posts from others. 
    274  */ 
    275 function get_others_unpublished_posts($user_id, $type='any') { 
    276     global $wpdb; 
    277  
    278     $editable = get_editable_user_ids( $user_id ); 
    279  
    280     if ( in_array($type, array('draft', 'pending')) ) 
    281         $type_sql = " post_status = '$type' "; 
    282     else 
    283         $type_sql = " ( post_status = 'draft' OR post_status = 'pending' ) "; 
    284  
    285     $dir = ( 'pending' == $type ) ? 'ASC' : 'DESC'; 
    286  
    287     if ( !$editable ) { 
    288         $other_unpubs = ''; 
    289     } else { 
    290         $editable = join(',', $editable); 
    291         $other_unpubs = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title, post_author FROM $wpdb->posts WHERE post_type = 'post' AND $type_sql AND post_author IN ($editable) AND post_author != %d ORDER BY post_modified $dir", $user_id) ); 
    292     } 
    293  
    294     return apply_filters('get_others_drafts', $other_unpubs); 
    295 } 
    296  
    297 /** 
    298  * Retrieve drafts from other users. 
    299  * 
    300  * @since unknown 
    301  * 
    302  * @param int $user_id User ID. 
    303  * @return array List of drafts from other users. 
    304  */ 
    305 function get_others_drafts($user_id) { 
    306     return get_others_unpublished_posts($user_id, 'draft'); 
    307 } 
    308  
    309 /** 
    310  * Retrieve pending review posts from other users. 
    311  * 
    312  * @since unknown 
    313  * 
    314  * @param int $user_id User ID. 
    315  * @return array List of posts with pending review post type from other users. 
    316  */ 
    317 function get_others_pending($user_id) { 
    318     return get_others_unpublished_posts($user_id, 'pending'); 
    319214} 
    320215 
Note: See TracChangeset for help on using the changeset viewer.