From 13614f7dc9fb71a02872bf693ae76f42b1476747 Mon Sep 17 00:00:00 2001 From: Jake Spurlock Date: Thu, 18 Jun 2020 23:00:31 +0000 Subject: [PATCH] Privacy: Revert use relative paths for exported personal data. Tests need to be updated to pass. See: #44038. Unprops: whyisjake. git-svn-id: https://develop.svn.wordpress.org/trunk@48088 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/privacy-tools.php | 51 ++++--------------------- 1 file changed, 7 insertions(+), 44 deletions(-) diff --git a/src/wp-admin/includes/privacy-tools.php b/src/wp-admin/includes/privacy-tools.php index d017a0cf4c..2d35984499 100644 --- a/src/wp-admin/includes/privacy-tools.php +++ b/src/wp-admin/includes/privacy-tools.php @@ -468,47 +468,17 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { * filename, to avoid breaking any URLs that may have been previously sent * via email. */ - $error = false; - - // This postmeta is used from version 5.4. - $archive_filename = get_post_meta( $request_id, '_export_file_name', true ); - - // These are used for backwards compatibility. + $error = false; $archive_url = get_post_meta( $request_id, '_export_file_url', true ); $archive_pathname = get_post_meta( $request_id, '_export_file_path', true ); - // If archive_filename exists make sure to remove deprecated postmeta. - if ( ! empty( $archive_filename ) ) { - $archive_pathname = $exports_dir . $archive_filename; - $archive_url = $exports_url . $archive_filename; - - // Remove the deprecated postmeta. - delete_post_meta( $request_id, '_export_file_url' ); - delete_post_meta( $request_id, '_export_file_path' ); - } elseif ( ! empty( $archive_pathname ) ) { - // Check if archive_pathname exists create the new postmeta and remove the deprecated. - - $archive_filename = basename( $archive_pathname ); - $archive_url = $exports_url . $archive_filename; - - // Add the new postmeta that is used since version 5.4. - update_post_meta( $request_id, '_export_file_name', wp_normalize_path( $archive_filename ) ); - - // Remove the deprecated postmeta. - delete_post_meta( $request_id, '_export_file_url' ); - delete_post_meta( $request_id, '_export_file_path' ); - } else { - // If there's no archive_filename or archive_pathname create a new one. + if ( empty( $archive_pathname ) || empty( $archive_url ) ) { $archive_filename = $file_basename . '.zip'; - $archive_url = $exports_url . $archive_filename; $archive_pathname = $exports_dir . $archive_filename; + $archive_url = $exports_url . $archive_filename; - // Add the new postmeta that is used since version 5.4. - update_post_meta( $request_id, '_export_file_name', wp_normalize_path( $archive_filename ) ); - - // Remove the deprecated postmeta. - delete_post_meta( $request_id, '_export_file_url' ); - delete_post_meta( $request_id, '_export_file_path' ); + update_post_meta( $request_id, '_export_file_url', $archive_url ); + update_post_meta( $request_id, '_export_file_path', wp_normalize_path( $archive_pathname ) ); } if ( ! empty( $archive_pathname ) && file_exists( $archive_pathname ) ) { @@ -569,10 +539,6 @@ function wp_privacy_send_personal_data_export_email( $request_id ) { // Get the request. $request = wp_get_user_request( $request_id ); - // Get the export file URL. - $exports_url = wp_privacy_exports_url(); - $export_file_name = get_post_meta( $request_id, '_export_file_name', true ); - if ( ! $request || 'export_personal_data' !== $request->action_name ) { return new WP_Error( 'invalid_request', __( 'Invalid request ID when sending personal data export email.' ) ); } @@ -590,7 +556,7 @@ function wp_privacy_send_personal_data_export_email( $request_id ) { $expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS ); $expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration ); - $export_file_url = $exports_url . $export_file_name; + $export_file_url = get_post_meta( $request_id, '_export_file_url', true ); $site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); $site_url = home_url(); @@ -854,10 +820,7 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde _wp_privacy_completed_request( $request_id ); } else { // Modify the response to include the URL of the export file so the browser can fetch it. - $exports_url = wp_privacy_exports_url(); - $export_file_name = get_post_meta( $request_id, '_export_file_name', true ); - $export_file_url = $exports_url . $export_file_name; - + $export_file_url = get_post_meta( $request_id, '_export_file_url', true ); if ( ! empty( $export_file_url ) ) { $response['url'] = $export_file_url; }