Changeset 8296

Show
Ignore:
Timestamp:
07/09/08 02:00:21 (2 months ago)
Author:
matt
Message:

Ajax Deleting an object that's already been deleted should silently succeed. Hat tip: mdawaffe. Fixes #7264.

Files:

Legend:

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

    r8214 r8296  
    3131    check_ajax_referer( "delete-comment_$id" ); 
    3232    if ( !$comment = get_comment( $id ) ) 
    33         die('0'); 
     33        die('1'); 
    3434    if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) ) 
    3535        die('-1'); 
    3636 
    37     if ( isset($_POST['spam']) && 1 == $_POST['spam'] ) 
     37    if ( isset($_POST['spam']) && 1 == $_POST['spam'] ) { 
     38        if ( 'spam' == wp_get_comment_status( $comment->comment_ID ) ) 
     39            die('1'); 
    3840        $r = wp_set_comment_status( $comment->comment_ID, 'spam' ); 
    39     else 
     41    } else { 
    4042        $r = wp_delete_comment( $comment->comment_ID ); 
     43    } 
    4144 
    4245    die( $r ? '1' : '0' ); 
     
    4750        die('-1'); 
    4851 
     52    $cat = get_category( $id ); 
     53    if ( !$cat || is_wp_error( $cat ) ) 
     54        die('1'); 
     55 
    4956    if ( wp_delete_category( $id ) ) 
    5057        die('1'); 
    51     else    die('0'); 
     58    else 
     59        die('0'); 
    5260    break; 
    5361case 'delete-tag' : 
     
    5664        die('-1'); 
    5765 
     66    $tag = get_term( $id, 'post_tag' ); 
     67    if ( !$tag || is_wp_error( $tag ) ) 
     68        die('1'); 
     69 
    5870    if ( wp_delete_term($id, 'post_tag')) 
    5971        die('1'); 
    60     else    die('0'); 
     72    else 
     73        die('0'); 
    6174    break; 
    6275case 'delete-link-cat' : 
     
    6477    if ( !current_user_can( 'manage_categories' ) ) 
    6578        die('-1'); 
     79 
     80    $cat = get_term( $id, 'link_category' ); 
     81    if ( !$cat || is_wp_error( $cat ) ) 
     82        die('1'); 
    6683 
    6784    $cat_name = get_term_field('name', $id, 'link_category'); 
     
    95112        die('-1'); 
    96113 
     114    $link = get_bookmark( $id ); 
     115    if ( !$link || is_wp_error( $link ) ) 
     116        die('1'); 
     117 
    97118    if ( wp_delete_link( $id ) ) 
    98119        die('1'); 
    99     else    die('0'); 
     120    else 
     121        die('0'); 
    100122    break; 
    101123case 'delete-meta' : 
    102124    check_ajax_referer( "delete-meta_$id" ); 
    103125    if ( !$meta = get_post_meta_by_id( $id ) ) 
    104         die('0'); 
     126        die('1'); 
     127 
    105128    if ( !current_user_can( 'edit_post', $meta->post_id ) ) 
    106129        die('-1'); 
     
    114137        die('-1'); 
    115138 
     139    if ( !get_post( $id ) ) 
     140        die('1'); 
     141 
    116142    if ( wp_delete_post( $id ) ) 
    117143        die('1'); 
     
    124150        die('-1'); 
    125151 
     152    if ( !get_page( $id ) ) 
     153        die('1'); 
     154 
    126155    if ( wp_delete_post( $id ) ) 
    127156        die('1'); 
    128     else    die('0'); 
     157    else 
     158        die('0'); 
    129159    break; 
    130160case 'dim-comment' : 
    131161    if ( !$comment = get_comment( $id ) ) 
    132162        die('0'); 
     163 
    133164    if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) ) 
    134165        die('-1'); 
     
    136167        die('-1'); 
    137168 
    138     if ( 'unapproved' == wp_get_comment_status($comment->comment_ID) ) { 
     169    $current = wp_get_comment_status( $comment->comment_ID ); 
     170    if ( $_POST['new'] == $current ) 
     171        die('1'); 
     172 
     173    if ( 'unapproved' == $current ) { 
    139174        check_ajax_referer( "approve-comment_$id" ); 
    140175        if ( wp_set_comment_status( $comment->comment_ID, 'approve' ) ) 
  • trunk/wp-admin/includes/template.php

    r8217 r8296  
    769769 
    770770    if ( current_user_can('edit_post', $comment->comment_post_ID) ) { 
    771         $actions['approve']   = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3' title='" . __( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a> | '; 
    772         $actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3' title='" . __( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a> | '; 
     771        $actions['approve']   = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved' title='" . __( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a> | '; 
     772        $actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' title='" . __( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a> | '; 
    773773 
    774774        // we're looking at list of only approved or only unapproved comments 
    775775        if ( 'moderated' == $comment_status ) { 
    776             $actions['approve'] = "<a href='$approve_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment' title='" . __( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a> | '; 
     776            $actions['approve'] = "<a href='$approve_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=approved' title='" . __( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a> | '; 
    777777            unset($actions['unapprove']); 
    778778        } elseif ( 'approved' == $comment_status ) { 
    779             $actions['unapprove'] = "<a href='$unapprove_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment' title='" . __( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a> | '; 
     779            $actions['unapprove'] = "<a href='$unapprove_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&new=unapproved' title='" . __( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a> | '; 
    780780            unset($actions['approve']); 
    781781        }