WordPress.org

Make WordPress Core

Ticket #17419: 17419.diff

File 17419.diff, 2.8 KB (added by solarissmoke, 3 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;