WordPress.org

Make WordPress Core

Changeset 14593


Ignore:
Timestamp:
05/13/2010 04:10:17 AM (8 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.