Make WordPress Core

Changeset 43061


Ignore:
Timestamp:
05/01/2018 07:26:53 PM (8 years ago)
Author:
azaozz
Message:

Privacy: improve wp_privacy_erase_personal_data(), return boolean values.

Props ericdaams.
See #43602.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/ajax-actions.php

    r43060 r43061  
    45654565         *
    45664566         *         @type string $callback               Callable eraser that accepts an email address and
    4567          *                                              a page and returns an array with the number of items
    4568          *                                              removed, the number of items retained and any messages
     4567         *                                              a page and returns an array with boolean values for
     4568         *                                              whether items were removed or retained and any messages
    45694569         *                                              from the eraser, as well as if additional pages are
    45704570         *                                              available.
     
    46334633                }
    46344634
    4635                 if ( ! array_key_exists( 'num_items_removed', $response ) ) {
     4635                if ( ! array_key_exists( 'items_removed', $response ) ) {
    46364636                        wp_send_json_error(
    46374637                                sprintf(
    46384638                                        /* translators: %1$s: eraser friendly name, %2$d: array index */
    4639                                         __( 'Expected num_items_removed key in response array from %1$s eraser (index %2$d).' ),
     4639                                        __( 'Expected items_removed key in response array from %1$s eraser (index %2$d).' ),
    46404640                                        esc_html( $eraser_friendly_name ),
    46414641                                        $eraser_index
     
    46444644                }
    46454645
    4646                 if ( ! array_key_exists( 'num_items_retained', $response ) ) {
     4646                if ( ! array_key_exists( 'items_retained', $response ) ) {
    46474647                        wp_send_json_error(
    46484648                                sprintf(
    46494649                                        /* translators: %1$s: eraser friendly name, %2$d: array index */
    4650                                         __( 'Expected num_items_retained key in response array from %1$s eraser (index %2$d).' ),
     4650                                        __( 'Expected items_retained key in response array from %1$s eraser (index %2$d).' ),
    46514651                                        esc_html( $eraser_friendly_name ),
    46524652                                        $eraser_index
     
    46904690                // No erasers, so we're done.
    46914691                $response = array(
    4692                         'num_items_removed'  => 0,
    4693                         'num_items_retained' => 0,
    4694                         'messages'           => array(),
    4695                         'done'               => true,
     4692                        'items_removed'  => false,
     4693                        'items_retained' => false,
     4694                        'messages'       => array(),
     4695                        'done'           => true,
    46964696                );
    46974697        }
  • trunk/src/wp-admin/js/xfn.js

    r43012 r43061  
    142142                var erasersCount  = $action.data( 'erasers-count' );
    143143
    144                 var removedCount  = 0;
    145                 var retainedCount = 0;
     144                var hasRemoved    = false;
     145                var hasRetained   = false;
    146146                var messages      = [];
    147147
     
    153153                        var summaryMessage = strings.noDataFound;
    154154                        var classes = 'notice-success';
    155                         if ( 0 === removedCount ) {
    156                                 if ( 0 === retainedCount ) {
     155                        if ( false === hasRemoved ) {
     156                                if ( false === hasRetained ) {
    157157                                        summaryMessage = strings.noDataFound;
    158158                                } else {
     
    161161                                }
    162162                        } else {
    163                                 if ( 0 === retainedCount ) {
     163                                if ( false === hasRetained ) {
    164164                                        summaryMessage = strings.foundAndRemoved;
    165165                                } else {
     
    193193                                }
    194194                                var responseData = response.data;
    195                                 if ( responseData.num_items_removed ) {
    196                                         removedCount += responseData.num_items_removed;
    197                                 }
    198                                 if ( responseData.num_items_retained ) {
    199                                         retainedCount += responseData.num_items_removed;
     195                                if ( responseData.items_removed ) {
     196                                        hasRemoved = hasRemoved || responseData.items_removed;
     197                                }
     198                                if ( responseData.items_retained ) {
     199                                        hasRetained = hasRetained || responseData.items_retained;
    200200                                }
    201201                                if ( responseData.messages ) {
  • trunk/src/wp-includes/comment.php

    r43058 r43061  
    34133413        if ( empty( $email_address ) ) {
    34143414                return array(
    3415                         'num_items_removed'  => 0,
    3416                         'num_items_retained' => 0,
    3417                         'messages'           => array(),
    3418                         'done'               => true,
     3415                        'items_removed'  => false,
     3416                        'items_retained' => false,
     3417                        'messages'       => array(),
     3418                        'done'           => true,
    34193419                );
    34203420        }
    34213421
    34223422        // Limit us to 500 comments at a time to avoid timing out.
    3423         $number            = 500;
    3424         $page              = (int) $page;
    3425         $num_items_removed = 0;
     3423        $number         = 500;
     3424        $page           = (int) $page;
     3425        $items_removed  = false;
     3426        $items_retained = false;
    34263427
    34273428        $comments = get_comments(
     
    34703471                        }
    34713472
     3473                        $items_retained = true;
     3474
    34723475                        continue;
    34733476                }
     
    34803483
    34813484                if ( $updated ) {
    3482                         $num_items_removed++;
     3485                        $items_removed = true;
    34833486                        clean_comment_cache( $comment_id );
     3487                } else {
     3488                        $items_retained = true;
    34843489                }
    34853490        }
     
    34883493
    34893494        return array(
    3490                 'num_items_removed'  => $num_items_removed,
    3491                 'num_items_retained' => count( $comments ) - $num_items_removed,
    3492                 'messages'           => $messages,
    3493                 'done'               => $done,
     3495                'items_removed'  => $items_removed,
     3496                'items_retained' => $items_retained,
     3497                'messages'       => $messages,
     3498                'done'           => $done,
    34943499        );
    34953500}
     3501
  • trunk/tests/phpunit/tests/comment.php

    r43015 r43061  
    878878                $actual   = wp_comments_personal_data_eraser( 'nocommentsfound@local.host' );
    879879                $expected = array(
    880                         'num_items_removed'  => 0,
    881                         'num_items_retained' => 0,
    882                         'messages'           => array(),
    883                         'done'               => true,
     880                        'items_removed'  => false,
     881                        'items_retained' => false,
     882                        'messages'       => array(),
     883                        'done'           => true,
    884884                );
    885885
     
    909909                $actual   = wp_comments_personal_data_eraser( $args['comment_author_email'] );
    910910                $expected = array(
    911                         'num_items_removed'  => 1,
    912                         'num_items_retained' => 0,
    913                         'messages'           => array(),
    914                         'done'               => true,
     911                        'items_removed'  => true,
     912                        'items_retained' => false,
     913                        'messages'       => array(),
     914                        'done'           => true,
    915915                );
    916916
     
    940940                $actual   = wp_comments_personal_data_eraser( $args['comment_author_email'], 2 );
    941941                $expected = array(
    942                         'num_items_removed'  => 0,
    943                         'num_items_retained' => 0,
    944                         'messages'           => array(),
    945                         'done'               => true,
     942                        'items_removed'  => false,
     943                        'items_retained' => false,
     944                        'messages'       => array(),
     945                        'done'           => true,
    946946                );
    947947
     
    976976
    977977                $expected = array(
    978                         'num_items_removed'  => 0,
    979                         'num_items_retained' => 1,
    980                         'messages'           => array( $message ),
    981                         'done'               => true,
     978                        'items_removed'  => false,
     979                        'items_retained' => true,
     980                        'messages'       => array( $message ),
     981                        'done'           => true,
    982982                );
    983983
     
    10121012
    10131013                $expected = array(
    1014                         'num_items_removed'  => 0,
    1015                         'num_items_retained' => 1,
    1016                         'messages'           => array( $message ),
    1017                         'done'               => true,
     1014                        'items_removed'  => false,
     1015                        'items_retained' => true,
     1016                        'messages'       => array( $message ),
     1017                        'done'           => true,
    10181018                );
    10191019
Note: See TracChangeset for help on using the changeset viewer.