MDL-62563 privacy: Create delete data request for existing deleted users

This commit is contained in:
Mihail Geshoski
2018-11-05 16:24:02 +08:00
parent e3eb339d89
commit d2481db6b0
11 changed files with 153 additions and 37 deletions
@@ -76,7 +76,6 @@ class process_data_request_task extends adhoc_task {
// Get the user details now. We might not be able to retrieve it later if it's a deletion processing.
$foruser = core_user::get_user($request->userid);
$usercontext = \context_user::instance($foruser->id);
// Update the status of this request as pre-processing.
mtrace('Processing request...');
@@ -84,6 +83,14 @@ class process_data_request_task extends adhoc_task {
$completestatus = api::DATAREQUEST_STATUS_COMPLETE;
if ($request->type == api::DATAREQUEST_TYPE_EXPORT) {
// Get the user context.
$usercontext = \context_user::instance($foruser->id, IGNORE_MISSING);
if (!$usercontext) {
mtrace("Request {$requestid} cannot be processed due to a missing user context instance for the user
with ID {$foruser->id}. Skipping...");
return;
}
// Get the collection of approved_contextlist objects needed for core_privacy data export.
$approvedclcollection = api::get_approved_contextlist_collection_for_request($requestpersistent);
@@ -191,12 +198,19 @@ class process_data_request_task extends adhoc_task {
// Send message to the user involved.
if ($notifyuser) {
$messagesent = false;
if ($emailonly) {
email_to_user($foruser, $dpo, $subject, $message->fullmessage, $messagehtml);
// Do not sent an email if the user has been deleted. The user email has been previously deleted.
if (!$foruser->deleted) {
$messagesent = email_to_user($foruser, $dpo, $subject, $message->fullmessage, $messagehtml);
}
} else {
message_send($message);
$messagesent = message_send($message);
}
if ($messagesent) {
mtrace('Message sent to user: ' . $messagetextdata['username']);
}
mtrace('Message sent to user: ' . $messagetextdata['username']);
}
// Send to requester as well in some circumstances.