WordPress.org

Make WordPress Core

Changeset 14593


Ignore:
Timestamp:
05/13/10 04:10:17 (5 years ago)
Author:
nacin
Message:

Move taxonomy object properties for capabilities into a cap object. Capabilities can be specified via capabilities? (an array keyed by the generic cap name) for register_taxonomy. fixes #13358.

Location:
trunk
Files:
11 edited

Legend:

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

    r14581 r14593  
    220220    $taxonomy = get_taxonomy(substr($action, 4)); 
    221221    check_ajax_referer( $action ); 
    222     if ( !current_user_can( $taxonomy->edit_cap ) ) 
     222    if ( !current_user_can( $taxonomy->cap->edit_terms ) ) 
    223223        die('-1'); 
    224224    $names = explode(',', $_POST['new'.$taxonomy->name]); 
     
    335335    $tax = get_taxonomy($taxonomy); 
    336336 
    337     if ( !current_user_can( $tax->delete_cap ) ) 
     337    if ( !current_user_can( $tax->cap->delete_terms ) ) 
    338338        die('-1'); 
    339339 
     
    567567    $x = new WP_Ajax_Response(); 
    568568 
    569     if ( !current_user_can( $tax->edit_cap ) ) 
     569    if ( !current_user_can( $tax->cap->edit_terms ) ) 
    570570        die('-1'); 
    571571 
     
    12051205    $tax = get_taxonomy($taxonomy); 
    12061206 
    1207     if ( ! current_user_can( $tax->edit_cap ) ) 
     1207    if ( ! current_user_can( $tax->cap->edit_terms ) ) 
    12081208        die( __('Cheatin’ uh?') ); 
    12091209 
  • trunk/wp-admin/edit-tags.php

    r14139 r14593  
    4242    check_admin_referer('add-tag'); 
    4343 
    44     if ( !current_user_can($tax->edit_cap) ) 
     44    if ( !current_user_can($tax->cap->edit_terms) ) 
    4545        wp_die(__('Cheatin’ uh?')); 
    4646 
     
    8080    check_admin_referer('delete-tag_' .  $tag_ID); 
    8181 
    82     if ( !current_user_can($tax->delete_cap) ) 
     82    if ( !current_user_can($tax->cap->delete_terms) ) 
    8383        wp_die(__('Cheatin’ uh?')); 
    8484 
     
    9494    check_admin_referer('bulk-tags'); 
    9595 
    96     if ( !current_user_can($tax->delete_cap) ) 
     96    if ( !current_user_can($tax->cap->delete_terms) ) 
    9797        wp_die(__('Cheatin’ uh?')); 
    9898 
     
    131131    check_admin_referer('update-tag_' . $tag_ID); 
    132132 
    133     if ( !current_user_can($tax->edit_cap) ) 
     133    if ( !current_user_can($tax->cap->edit_terms) ) 
    134134        wp_die(__('Cheatin’ uh?')); 
    135135 
     
    162162 
    163163wp_enqueue_script('admin-tags'); 
    164 if ( current_user_can($tax->edit_cap) ) 
     164if ( current_user_can($tax->cap->edit_terms) ) 
    165165    wp_enqueue_script('inline-edit-tax'); 
    166166 
     
    319319 
    320320<?php 
    321 if ( current_user_can( $tax->edit_cap ) ) 
     321if ( current_user_can( $tax->cap->edit_terms ) ) 
    322322    $tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false, 'link' => 'edit' ) ); 
    323323else 
     
    333333endif; 
    334334 
    335 if ( current_user_can($tax->edit_cap) ) { 
     335if ( current_user_can($tax->cap->edit_terms) ) { 
    336336    if ( 'category' == $taxonomy ) 
    337337        do_action('add_category_form_pre', (object)array('parent' => 0) );  // Back compat hook. Deprecated in preference to $taxonomy_pre_add_form 
  • trunk/wp-admin/includes/meta-boxes.php

    r14585 r14593  
    250250    $help_cloud = isset( $taxonomy->help_cloud ) ? $taxonomy->help_cloud        : __('Choose from the most used tags in %s'); 
    251251 
    252     $disabled = !current_user_can($taxonomy->assign_cap) ? 'disabled="disabled"' : ''; 
     252    $disabled = !current_user_can($taxonomy->cap->assign_terms) ? 'disabled="disabled"' : ''; 
    253253?> 
    254254<div class="tagsdiv" id="<?php echo $tax_name; ?>"> 
     
    257257    <p><?php echo $help_nojs; ?></p> 
    258258    <textarea name="<?php echo "tax_input[$tax_name]"; ?>" class="the-tags" id="tax-input[<?php echo $tax_name; ?>]" <?php echo $disabled; ?>><?php echo esc_attr(get_terms_to_edit( $post->ID, $tax_name )); ?></textarea></div> 
    259     <?php if ( current_user_can($taxonomy->assign_cap) ) : ?> 
     259    <?php if ( current_user_can($taxonomy->cap->assign_terms) ) : ?> 
    260260    <div class="ajaxtag hide-if-no-js"> 
    261261        <label class="screen-reader-text" for="new-tag-<?php echo $tax_name; ?>"><?php echo $box['title']; ?></label> 
     
    269269    <div class="tagchecklist"></div> 
    270270</div> 
    271 <?php if ( current_user_can($taxonomy->assign_cap) ) : ?> 
     271<?php if ( current_user_can($taxonomy->cap->assign_terms) ) : ?> 
    272272<p class="hide-if-no-js"><a href="#titlediv" class="tagcloud-link" id="link-<?php echo $tax_name; ?>"><?php printf( $help_cloud, $box['title'] ); ?></a></p> 
    273273<?php else : ?> 
     
    316316            </ul> 
    317317        </div> 
    318     <?php if ( !current_user_can($tax->assign_cap) ) : ?> 
     318    <?php if ( !current_user_can($tax->cap->assign_terms) ) : ?> 
    319319    <p><em><?php _e('You cannot modify this Taxonomy.'); ?></em></p> 
    320320    <?php endif; ?> 
    321     <?php if ( current_user_can($tax->edit_cap) ) : ?> 
     321    <?php if ( current_user_can($tax->cap->edit_terms) ) : ?> 
    322322            <div id="<?php echo $taxonomy; ?>-adder" class="wp-hidden-children"> 
    323323                <h4><a id="<?php echo $taxonomy; ?>-add-toggle" href="#<?php echo $taxonomy; ?>-add" class="hide-if-no-js" tabindex="3"><?php printf( __( '+ Add New %s' ), $tax->singular_label ); ?></a></h4> 
  • trunk/wp-admin/includes/post.php

    r14588 r14593  
    319319        foreach ( $tax_names as $tax_name ) { 
    320320            $taxonomy_obj = get_taxonomy($tax_name); 
    321             if(  isset( $tax_input[$tax_name]) && current_user_can( $taxonomy_obj->assign_cap ) ) 
     321            if(  isset( $tax_input[$tax_name]) && current_user_can( $taxonomy_obj->cap->assign_terms ) ) 
    322322                $new_terms = $tax_input[$tax_name]; 
    323323            else  
  • trunk/wp-admin/includes/template.php

    r14588 r14593  
    2323 
    2424    $tax = get_taxonomy($taxonomy); 
    25     if ( ! current_user_can( $tax->edit_cap ) ) 
     25    if ( ! current_user_can( $tax->cap->edit_terms ) ) 
    2626        return; 
    2727 
     
    262262 
    263263    $tax = get_taxonomy($taxonomy); 
    264     $args['disabled'] = !current_user_can($tax->assign_cap); 
     264    $args['disabled'] = !current_user_can($tax->cap->assign_terms); 
    265265 
    266266    if ( is_array( $selected_cats ) ) 
     
    325325 
    326326    $tax = get_taxonomy($taxonomy); 
    327     if ( ! current_user_can($tax->assign_cap) ) 
     327    if ( ! current_user_can($tax->cap->assign_terms) ) 
    328328        $disabled = 'disabled="disabled"'; 
    329329    else 
     
    437437            switch ($column_name) { 
    438438                case 'cb': 
    439                     if ( current_user_can($tax->delete_cap) && $tag->term_id != $default_term ) 
     439                    if ( current_user_can($tax->cap->delete_terms) && $tag->term_id != $default_term ) 
    440440                        $out .= '<th scope="row" class="check-column"> <input type="checkbox" name="delete_tags[]" value="' . $tag->term_id . '" /></th>'; 
    441441                    else 
     
    445445                    $out .= '<td ' . $attributes . '><strong><a class="row-title" href="' . $edit_link . '" title="' . esc_attr(sprintf(__('Edit &#8220;%s&#8221;'), $name)) . '">' . $name . '</a></strong><br />'; 
    446446                    $actions = array(); 
    447                     if ( current_user_can($tax->edit_cap) ) { 
     447                    if ( current_user_can($tax->cap->edit_terms) ) { 
    448448                        $actions['edit'] = '<a href="' . $edit_link . '">' . __('Edit') . '</a>'; 
    449449                        $actions['inline hide-if-no-js'] = '<a href="#" class="editinline">' . __('Quick&nbsp;Edit') . '</a>'; 
    450450                    } 
    451                     if ( current_user_can($tax->delete_cap) && $tag->term_id != $default_term ) 
     451                    if ( current_user_can($tax->cap->delete_terms) && $tag->term_id != $default_term ) 
    452452                        $actions['delete'] = "<a class='delete-tag' href='" . wp_nonce_url("edit-tags.php?action=delete&amp;taxonomy=$taxonomy&amp;tag_ID=$tag->term_id", 'delete-tag_' . $tag->term_id) . "'>" . __('Delete') . "</a>"; 
    453453 
  • trunk/wp-admin/menu.php

    r14585 r14593  
    9090            continue; 
    9191 
    92         $submenu['edit.php'][$i++] = array( esc_attr($tax->label), $tax->manage_cap, 'edit-tags.php?taxonomy=' . $tax->name ); 
     92        $submenu['edit.php'][$i++] = array( esc_attr($tax->label), $tax->cap->manage_terms, 'edit-tags.php?taxonomy=' . $tax->name ); 
    9393    } 
    9494    unset($tax); 
     
    139139            continue; 
    140140 
    141         $submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), $tax->manage_cap, "edit-tags.php?taxonomy=$tax->name&amp;post_type=$ptype" ); 
     141        $submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), $tax->cap->manage_terms, "edit-tags.php?taxonomy=$tax->name&amp;post_type=$ptype" ); 
    142142    } 
    143143} 
  • trunk/wp-admin/press-this.php

    r14404 r14593  
    505505                    </div> 
    506506 
    507                     <?php if ( !current_user_can($tax->assign_cap) ) : ?> 
     507                    <?php if ( !current_user_can($tax->cap->assign_terms) ) : ?> 
    508508                    <p><em><?php _e('You cannot modify this Taxonomy.'); ?></em></p> 
    509509                    <?php endif; ?> 
    510                     <?php if ( current_user_can($tax->edit_cap) ) : ?> 
     510                    <?php if ( current_user_can($tax->cap->edit_terms) ) : ?> 
    511511                        <div id="category-adder" class="wp-hidden-children"> 
    512512                            <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php printf( __( '+ Add New %s' ), $tax->singular_label ); ?></a></h4> 
  • trunk/wp-admin/tools.php

    r14315 r14593  
    3434$tags = get_taxonomy('post_tag'); 
    3535 
    36 if ( current_user_can($cats->manage_cap) || current_user_can($tags->manage_cap) ) : ?> 
     36if ( current_user_can($cats->cap->manage_terms) || current_user_can($tags->cap->manage_terms) ) : ?> 
    3737<div class="tool-box"> 
    3838    <h3 class="title"><?php _e('Category&#47;Tag Conversion') ?></h3> 
  • trunk/wp-includes/link-template.php

    r14585 r14593  
    647647    global $post_type; 
    648648    $tax = get_taxonomy($taxonomy); 
    649     if ( !current_user_can($tax->edit_cap) ) 
     649    if ( !current_user_can($tax->cap->edit_terms) ) 
    650650        return; 
    651651 
     
    669669function edit_tag_link( $link = '', $before = '', $after = '', $tag = null ) { 
    670670    $tax = get_taxonomy('post_tag'); 
    671     if ( !current_user_can($tax->edit_cap) ) 
     671    if ( !current_user_can($tax->cap->edit_terms) ) 
    672672        return; 
    673673 
  • trunk/wp-includes/post.php

    r14589 r14593  
    23302330            if ( is_array($tags) ) // array = hierarchical, string = non-hierarchical. 
    23312331                $tags = array_filter($tags); 
    2332             if ( current_user_can($taxonomy_obj->assign_cap) ) 
     2332            if ( current_user_can($taxonomy_obj->cap->assign_terms) ) 
    23332333                wp_set_post_terms( $post_ID, $tags, $taxonomy ); 
    23342334        } 
  • trunk/wp-includes/taxonomy.php

    r14563 r14593  
    257257                        'label' => null, 
    258258                        'show_tagcloud' => null, 
    259                         '_builtin' => false 
     259                        '_builtin' => false, 
     260                        'capabilities' => array(), 
    260261                        ); 
    261262    $args = wp_parse_args($args, $defaults); 
     
    286287        $args['label'] = $taxonomy; 
    287288 
    288     foreach ( array('manage_cap', 'edit_cap', 'delete_cap') as $cap ) { 
    289         if ( empty($args[$cap]) ) 
    290             $args[$cap] = 'manage_categories'; 
    291     } 
    292     if ( empty($args['assign_cap']) ) 
    293         $args['assign_cap'] = 'edit_posts'; 
     289    $default_caps = array( 
     290        'manage_terms' => 'manage_categories', 
     291        'edit_terms'   => 'manage_categories', 
     292        'delete_terms' => 'manage_categories', 
     293        'assign_terms' => 'edit_posts', 
     294    ); 
     295    $args['cap'] = (object) array_merge( $default_caps, $args['capabilities'] ); 
     296    unset( $args['capabilities'] ); 
    294297 
    295298    if ( empty($args['singular_label']) ) 
Note: See TracChangeset for help on using the changeset viewer.