Privacy: Only mark a personal data export as complete when the user downloads it.

An admin may download an export to check that it's all correct, but this action shouldn't mark the request as complete.

Props garrett-eclipse, JoshuaWold, birgire.
Fixes #44644.



git-svn-id: https://develop.svn.wordpress.org/trunk@45148 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Gary Pendergast 2019-04-09 00:03:07 +00:00
parent 677c2a447b
commit 6dddce67fc
2 changed files with 8 additions and 5 deletions

View File

@ -2550,6 +2550,9 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde
if ( is_wp_error( $mail_success ) ) {
wp_send_json_error( $mail_success->get_error_message() );
}
// Update the request to completed state when the export email is sent.
_wp_privacy_completed_request( $request_id );
} else {
// Modify the response to include the URL of the export file so the browser can fetch it.
$export_file_url = get_post_meta( $request_id, '_export_file_url', true );
@ -2558,8 +2561,5 @@ function wp_privacy_process_personal_data_export_page( $response, $exporter_inde
}
}
// Update the request to completed state.
_wp_privacy_completed_request( $request_id );
return $response;
}

View File

@ -615,7 +615,7 @@ class Tests_Privacy_WpPrivacyProcessPersonalDataExportPage extends WP_UnitTestCa
*/
public function data_export_page_status_transitions() {
return array(
// Mark the request as completed for the last exporter on the last page, with and without email.
// Mark the request as completed for the last exporter on the last page, with email.
array(
'request-completed',
'last',
@ -624,8 +624,11 @@ class Tests_Privacy_WpPrivacyProcessPersonalDataExportPage extends WP_UnitTestCa
true,
'last',
),
// Leave the request as pending for the last exporter on the last page, without email.
// This check was updated to account for admin vs user export.
// Don't mark the request as completed when it's an admin download.
array(
'request-completed',
'request-pending',
'last',
'last',
'last',