Make WordPress Core

Ticket #51351: 51351.diff

File 51351.diff, 14.7 KB (added by garrett-eclipse, 4 years ago)

Initial patch

  • src/wp-admin/erase-personal-data.php

     
    1010require_once __DIR__ . '/admin.php';
    1111
    1212if ( ! current_user_can( 'erase_others_personal_data' ) || ! current_user_can( 'delete_users' ) ) {
    13         wp_die( __( 'Sorry, you are not allowed to erase data on this site.' ) );
     13        wp_die( __( 'Sorry, you are not allowed to erase personal data on this site.' ) );
    1414}
    1515
    1616// Handle list table actions.
  • src/wp-admin/includes/privacy-tools.php

     
    2020        $request    = get_post( $request_id );
    2121
    2222        if ( ! $request || 'user_request' !== $request->post_type ) {
    23                 return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) );
     23                return new WP_Error( 'privacy_request_error', __( 'Invalid user privacy request.' ) );
    2424        }
    2525
    2626        $result = wp_send_user_request( $request_id );
     
    2828        if ( is_wp_error( $result ) ) {
    2929                return $result;
    3030        } elseif ( ! $result ) {
    31                 return new WP_Error( 'privacy_request_error', __( 'Unable to initiate confirmation request.' ) );
     31                return new WP_Error( 'privacy_request_error', __( 'Unable to initiate user privacy confirmation request.' ) );
    3232        }
    3333
    3434        return true;
     
    4949        $request    = wp_get_user_request( $request_id );
    5050
    5151        if ( ! $request ) {
    52                 return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) );
     52                return new WP_Error( 'privacy_request_error', __( 'Invalid user privacy request.' ) );
    5353        }
    5454
    5555        update_post_meta( $request_id, '_wp_user_request_completed_timestamp', time() );
     
    104104                                        add_settings_error(
    105105                                                'action_type',
    106106                                                'action_type',
    107                                                 __( 'Invalid action.' ),
     107                                                __( 'Invalid user privacy action.' ),
    108108                                                'error'
    109109                                        );
    110110                                }
     
    116116                                        add_settings_error(
    117117                                                'action_type',
    118118                                                'action_type',
    119                                                 __( 'Invalid action.' ),
     119                                                __( 'Invalid user privacy action.' ),
    120120                                                'error'
    121121                                        );
    122122                                }
     
    297297 */
    298298function wp_privacy_generate_personal_data_export_file( $request_id ) {
    299299        if ( ! class_exists( 'ZipArchive' ) ) {
    300                 wp_send_json_error( __( 'Unable to generate export file. ZipArchive not available.' ) );
     300                wp_send_json_error( __( 'Unable to generate user privacy export file. ZipArchive not available.' ) );
    301301        }
    302302
    303303        // Get the request.
     
    304304        $request = wp_get_user_request( $request_id );
    305305
    306306        if ( ! $request || 'export_personal_data' !== $request->action_name ) {
    307                 wp_send_json_error( __( 'Invalid request ID when generating export file.' ) );
     307                wp_send_json_error( __( 'Invalid request ID when generating user privacy export file.' ) );
    308308        }
    309309
    310310        $email_address = $request->email;
    311311
    312312        if ( ! is_email( $email_address ) ) {
    313                 wp_send_json_error( __( 'Invalid email address when generating export file.' ) );
     313                wp_send_json_error( __( 'Invalid email address when generating user privacy export file.' ) );
    314314        }
    315315
    316316        // Create the exports folder if needed.
     
    318318        $exports_url = wp_privacy_exports_url();
    319319
    320320        if ( ! wp_mkdir_p( $exports_dir ) ) {
    321                 wp_send_json_error( __( 'Unable to create export folder.' ) );
     321                wp_send_json_error( __( 'Unable to create user privacy export folder.' ) );
    322322        }
    323323
    324324        // Protect export folder from browsing.
     
    326326        if ( ! file_exists( $index_pathname ) ) {
    327327                $file = fopen( $index_pathname, 'w' );
    328328                if ( false === $file ) {
    329                         wp_send_json_error( __( 'Unable to protect export folder from browsing.' ) );
     329                        wp_send_json_error( __( 'Unable to protect user privacy export folder from browsing.' ) );
    330330                }
    331331                fwrite( $file, '<!-- Silence is golden. -->' );
    332332                fclose( $file );
     
    395395        $file = fopen( $json_report_pathname, 'w' );
    396396
    397397        if ( false === $file ) {
    398                 wp_send_json_error( __( 'Unable to open export file (JSON report) for writing.' ) );
     398                wp_send_json_error( __( 'Unable to open user privacy export file (JSON report) for writing.' ) );
    399399        }
    400400
    401401        fwrite( $file, '{' );
     
    410410        $file = fopen( $html_report_pathname, 'w' );
    411411
    412412        if ( false === $file ) {
    413                 wp_send_json_error( __( 'Unable to open export file (HTML report) for writing.' ) );
     413                wp_send_json_error( __( 'Unable to open user privacy export file (HTML report) for writing.' ) );
    414414        }
    415415
    416416        fwrite( $file, "<!DOCTYPE html>\n" );
     
    504504        $zip = new ZipArchive;
    505505        if ( true === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) {
    506506                if ( ! $zip->addFile( $json_report_pathname, 'export.json' ) ) {
    507                         $error = __( 'Unable to add data to JSON file.' );
     507                        $error = __( 'Unable to add data to user privacy export file (JSON format).' );
    508508                }
    509509
    510510                if ( ! $zip->addFile( $html_report_pathname, 'index.html' ) ) {
    511                         $error = __( 'Unable to add data to HTML file.' );
     511                        $error = __( 'Unable to add data to user privacy export file (HTML format).' );
    512512                }
    513513
    514514                $zip->close();
     
    529529                        do_action( 'wp_privacy_personal_data_export_file_created', $archive_pathname, $archive_url, $html_report_pathname, $request_id, $json_report_pathname );
    530530                }
    531531        } else {
    532                 $error = __( 'Unable to open export file (archive) for writing.' );
     532                $error = __( 'Unable to open user privacy export file (archive) for writing.' );
    533533        }
    534534
    535535        // Remove the JSON file.
     
    758758        $request = wp_get_user_request( $request_id );
    759759
    760760        if ( ! $request || 'export_personal_data' !== $request->action_name ) {
    761                 wp_send_json_error( __( 'Invalid request ID when merging exporter data.' ) );
     761                wp_send_json_error( __( 'Invalid request ID when merging user privacy exporter data.' ) );
    762762        }
    763763
    764764        $export_data = array();
     
    905905        $request = wp_get_user_request( $request_id );
    906906
    907907        if ( ! $request || 'remove_personal_data' !== $request->action_name ) {
    908                 wp_send_json_error( __( 'Invalid request ID when processing eraser data.' ) );
     908                wp_send_json_error( __( 'Invalid request ID when processing user privacy eraser data.' ) );
    909909        }
    910910
    911911        /** This filter is documented in wp-admin/includes/ajax-actions.php */
  • src/wp-admin/options-privacy.php

     
    1010require_once __DIR__ . '/admin.php';
    1111
    1212if ( ! current_user_can( 'manage_privacy_options' ) ) {
    13         wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) );
     13        wp_die( __( 'Sorry, you are not allowed to manage privacy options on this site.' ) );
    1414}
    1515
    1616$action = isset( $_POST['action'] ) ? $_POST['action'] : '';
  • src/wp-admin/privacy-policy-guide.php

     
    1010require_once __DIR__ . '/admin.php';
    1111
    1212if ( ! current_user_can( 'manage_privacy_options' ) ) {
    13         wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) );
     13        wp_die( __( 'Sorry, you are not allowed to manage privacy options on this site.' ) );
    1414}
    1515
    1616if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
  • src/wp-includes/user.php

     
    36083608        );
    36093609
    36103610        if ( $requests_query->found_posts ) {
    3611                 return new WP_Error( 'duplicate_request', __( 'An incomplete request for this email address already exists.' ) );
     3611                return new WP_Error( 'duplicate_request', __( 'An incomplete user privacy request for this email address already exists.' ) );
    36123612        }
    36133613
    36143614        $request_id = wp_insert_post(
     
    36763676        $request    = wp_get_user_request( $request_id );
    36773677
    36783678        if ( ! $request ) {
    3679                 return new WP_Error( 'invalid_request', __( 'Invalid user request.' ) );
     3679                return new WP_Error( 'invalid_request', __( 'Invalid user privacy request.' ) );
    36803680        }
    36813681
    36823682        // Localize message content for user; fallback to site default for visitors.
     
    38583858function wp_validate_user_request_key( $request_id, $key ) {
    38593859        global $wp_hasher;
    38603860
    3861         $request_id = absint( $request_id );
    3862         $request    = wp_get_user_request( $request_id );
     3861        $request_id       = absint( $request_id );
     3862        $request          = wp_get_user_request( $request_id );
     3863        $saved_key        = $request->confirm_key;
     3864        $key_request_time = $request->modified_timestamp;
    38633865
    3864         if ( ! $request ) {
    3865                 return new WP_Error( 'invalid_request', __( 'Invalid request.' ) );
     3866        if ( ! $request || ! $saved_key || ! $key_request_time ) {
     3867                return new WP_Error( 'invalid_request', __( 'Invalid user privacy request.' ) );
    38663868        }
    38673869
    38683870        if ( ! in_array( $request->status, array( 'request-pending', 'request-failed' ), true ) ) {
    3869                 return new WP_Error( 'expired_link', __( 'This link has expired.' ) );
     3871                return new WP_Error( 'expired_request', __( 'This user privacy request has expired.' ) );
    38703872        }
    38713873
    38723874        if ( empty( $key ) ) {
    3873                 return new WP_Error( 'missing_key', __( 'Missing confirm key.' ) );
     3875                return new WP_Error( 'missing_key', __( 'This user privacy request is missing the confirmation key.' ) );
    38743876        }
    38753877
    38763878        if ( empty( $wp_hasher ) ) {
     
    38783880                $wp_hasher = new PasswordHash( 8, true );
    38793881        }
    38803882
    3881         $key_request_time = $request->modified_timestamp;
    3882         $saved_key        = $request->confirm_key;
    3883 
    3884         if ( ! $saved_key ) {
    3885                 return new WP_Error( 'invalid_key', __( 'Invalid key.' ) );
    3886         }
    3887 
    3888         if ( ! $key_request_time ) {
    3889                 return new WP_Error( 'invalid_key', __( 'Invalid action.' ) );
    3890         }
    3891 
    38923883        /**
    38933884         * Filters the expiration time of confirm keys.
    38943885         *
     
    39003891        $expiration_time     = $key_request_time + $expiration_duration;
    39013892
    39023893        if ( ! $wp_hasher->CheckPassword( $key, $saved_key ) ) {
    3903                 return new WP_Error( 'invalid_key', __( 'Invalid key.' ) );
     3894                return new WP_Error( 'invalid_key', __( 'This user privacy request confirmation key is invalid.' ) );
    39043895        }
    39053896
    39063897        if ( ! $expiration_time || time() > $expiration_time ) {
    3907                 return new WP_Error( 'expired_key', __( 'The confirmation email has expired.' ) );
     3898                return new WP_Error( 'expired_key', __( 'This user privacy request confirmation key has expired.' ) );
    39083899        }
    39093900
    39103901        return true;
  • tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportFile.php

     
    164164                $request_id = wp_create_user_request( 'removal-requester@example.com', 'remove_personal_data' );
    165165
    166166                $this->expectException( 'WPDieException' );
    167                 $this->expectOutputString( '{"success":false,"data":"Invalid request ID when generating export file."}' );
     167                $this->expectOutputString( '{"success":false,"data":"Invalid request ID when generating user privacy export file."}' );
    168168                wp_privacy_generate_personal_data_export_file( $request_id );
    169169        }
    170170
     
    175175         */
    176176        public function test_invalid_request_id() {
    177177                $this->expectException( 'WPDieException' );
    178                 $this->expectOutputString( '{"success":false,"data":"Invalid request ID when generating export file."}' );
     178                $this->expectOutputString( '{"success":false,"data":"Invalid request ID when generating user privacy export file."}' );
    179179                wp_privacy_generate_personal_data_export_file( 123456789 );
    180180        }
    181181
     
    195195                );
    196196
    197197                $this->expectException( 'WPDieException' );
    198                 $this->expectOutputString( '{"success":false,"data":"Invalid email address when generating export file."}' );
     198                $this->expectOutputString( '{"success":false,"data":"Invalid email address when generating user privacy export file."}' );
    199199                wp_privacy_generate_personal_data_export_file( $request_id );
    200200        }
    201201
     
    209209                touch( untrailingslashit( self::$exports_dir ) );
    210210
    211211                $this->expectException( 'WPDieException' );
    212                 $this->expectOutputString( '{"success":false,"data":"Unable to create export folder."}' );
     212                $this->expectOutputString( '{"success":false,"data":"Unable to create user privacy export folder."}' );
    213213                wp_privacy_generate_personal_data_export_file( self::$export_request_id );
    214214        }
    215215
  • tests/phpunit/tests/privacy/wpPrivacyProcessPersonalDataExportPage.php

     
    367367                $invalid_request_id = 0;
    368368
    369369                // Process data, given the last exporter, on the last page and send as email.
    370                 $this->_setup_expected_failure( '{"success":false,"data":"Invalid request ID when merging exporter data."}' );
     370                $this->_setup_expected_failure( '{"success":false,"data":"Invalid request ID when merging user privacy exporter data."}' );
    371371
    372372                wp_privacy_process_personal_data_export_page(
    373373                        $response,
     
    399399                $request_id = wp_create_user_request( self::$requester_email, 'remove_personal_data' );
    400400
    401401                // Process data, given the last exporter, on the last page and send as email.
    402                 $this->_setup_expected_failure( '{"success":false,"data":"Invalid request ID when merging exporter data."}' );
     402                $this->_setup_expected_failure( '{"success":false,"data":"Invalid request ID when merging user privacy exporter data."}' );
    403403
    404404                wp_privacy_process_personal_data_export_page(
    405405                        $response,
  • tests/qunit/fixtures/wp-api-generated.js

     
    44694469                        "attributes": {
    44704470                            "required": false,
    44714471                            "default": [],
    4472                             "description": "Attributes for the block",
     4472                            "description": "Attributes for the block.",
    44734473                            "type": "object"
    44744474                        },
    44754475                        "post_id": {
     
    45634563                    "args": {
    45644564                        "name": {
    45654565                            "required": false,
    4566                             "description": "Block name",
     4566                            "description": "Block name.",
    45674567                            "type": "string"
    45684568                        },
    45694569                        "namespace": {
    45704570                            "required": false,
    4571                             "description": "Block namespace",
     4571                            "description": "Block namespace.",
    45724572                            "type": "string"
    45734573                        },
    45744574                        "context": {