WordPress.org

Make WordPress Core

Ticket #15276: 15276.diff

File 15276.diff, 945 bytes (added by kawauso, 4 years ago)

Validation modelled after AJAX handler

  • post.php

     
    192192 
    193193        // Meta Stuff 
    194194        if ( isset($post_data['meta']) && $post_data['meta'] ) { 
    195                 foreach ( $post_data['meta'] as $key => $value ) 
     195                foreach ( $post_data['meta'] as $key => $value ) { 
     196                        if ( !$meta = get_post_meta_by_id( $key ) ) 
     197                                continue; 
     198                        if ( !current_user_can( 'edit_post', $meta->post_id ) ) 
     199                                continue; 
    196200                        update_meta( $key, $value['key'], $value['value'] ); 
     201                } 
    197202        } 
    198203 
    199204        if ( isset($post_data['deletemeta']) && $post_data['deletemeta'] ) { 
    200                 foreach ( $post_data['deletemeta'] as $key => $value ) 
     205                foreach ( $post_data['deletemeta'] as $key => $value ) { 
     206                        if ( !$meta = get_post_meta_by_id( $key ) ) 
     207                                continue; 
     208                        if ( !current_user_can( 'edit_post', $meta->post_id ) ) 
     209                                continue; 
    201210                        delete_meta( $key ); 
     211                } 
    202212        } 
    203213 
    204214        add_meta( $post_ID );