WordPress.org

Make WordPress Core

Ticket #17419: 17419.diff

File 17419.diff, 2.8 KB (added by solarissmoke, 7 years ago)

Check permissions before showing various edit links in media library

  • wp-admin/includes/class-wp-media-list-table.php

     
    158158
    159159        function display_rows() {
    160160                global $post, $id;
     161                $user_can_edit = current_user_can( 'edit_post', $post->ID );
    161162
    162163                add_filter( 'the_title','esc_html' );
    163164                $alt = '';
     
    189190
    190191        case 'cb':
    191192?>
    192                 <th scope="row" class="check-column"><?php if ( current_user_can( 'edit_post', $post->ID ) ) { ?><input type="checkbox" name="media[]" value="<?php the_ID(); ?>" /><?php } ?></th>
     193                <th scope="row" class="check-column"><?php if ( $user_can_edit ) { ?><input type="checkbox" name="media[]" value="<?php the_ID(); ?>" /><?php } ?></th>
    193194<?php
    194195                break;
    195196
     
    198199?>
    199200                <td <?php echo $attributes ?>><?php
    200201                        if ( $thumb = wp_get_attachment_image( $post->ID, array( 80, 60 ), true ) ) {
    201                                 if ( $this->is_trash ) {
     202                                if ( $this->is_trash || ! $user_can_edit ) {
    202203                                        echo $thumb;
    203204                                } else {
    204205?>
     
    215216
    216217        case 'title':
    217218?>
    218                 <td <?php echo $attributes ?>><strong><?php if ( $this->is_trash ) echo $att_title; else { ?><a href="<?php echo get_edit_post_link( $post->ID, true ); ?>" title="<?php echo esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $att_title ) ); ?>"><?php echo $att_title; ?></a><?php }; _media_states( $post ); ?></strong>
     219                <td <?php echo $attributes ?>><strong><?php if ( $this->is_trash || ! $user_can_edit ) echo $att_title; else { ?><a href="<?php echo get_edit_post_link( $post->ID, true ); ?>" title="<?php echo esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $att_title ) ); ?>"><?php echo $att_title; ?></a><?php }; _media_states( $post ); ?></strong>
    219220                        <p>
    220221<?php
    221222                        if ( preg_match( '/^.*?\.(\w+)$/', get_attached_file( $post->ID ), $matches ) )
     
    288289                        }
    289290?>
    290291                        <td <?php echo $attributes ?>>
    291                                 <strong><a href="<?php echo get_edit_post_link( $post->post_parent ); ?>"><?php echo $title ?></a></strong>,
     292                                <strong><?php if( current_user_can( 'edit_post', $post->post_parent ) ) { ?><a href="<?php echo get_edit_post_link( $post->post_parent ); ?>"><?php echo $title ?></a><?php } else { echo $title; } ?></strong>,
    292293                                <?php echo get_the_time( __( 'Y/m/d' ) ); ?>
    293294                        </td>
    294295<?php
    295296                } else {
    296297?>
    297298                        <td <?php echo $attributes ?>><?php _e( '(Unattached)' ); ?><br />
    298                         <a class="hide-if-no-js" onclick="findPosts.open( 'media[]','<?php echo $post->ID ?>' );return false;" href="#the-list"><?php _e( 'Attach' ); ?></a></td>
     299                        <?php if( $user_can_edit ) {?> <a class="hide-if-no-js" onclick="findPosts.open( 'media[]','<?php echo $post->ID ?>' );return false;" href="#the-list"><?php _e( 'Attach' ); ?></a><?php } ?></td>
    299300<?php
    300301                }
    301302                break;