From 500dc0b13473b7ce2d2985ba81b9a8ee5ce145d5 Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Thu, 11 Oct 2018 14:23:21 +0800 Subject: [PATCH] MDL-62904 tool_dataprivacy: Add data request links in profile page --- admin/tool/dataprivacy/createdatarequest.php | 4 +++- .../dataprivacy/lang/en/tool_dataprivacy.php | 1 + admin/tool/dataprivacy/lib.php | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/admin/tool/dataprivacy/createdatarequest.php b/admin/tool/dataprivacy/createdatarequest.php index c0ea7acc3e4..12db2ea03e7 100644 --- a/admin/tool/dataprivacy/createdatarequest.php +++ b/admin/tool/dataprivacy/createdatarequest.php @@ -27,8 +27,9 @@ require_once('lib.php'); require_once('createdatarequest_form.php'); $manage = optional_param('manage', 0, PARAM_INT); +$requesttype = optional_param('type', \tool_dataprivacy\api::DATAREQUEST_TYPE_EXPORT, PARAM_INT); -$url = new moodle_url('/admin/tool/dataprivacy/createdatarequest.php', ['manage' => $manage]); +$url = new moodle_url('/admin/tool/dataprivacy/createdatarequest.php', ['manage' => $manage, 'type' => $requesttype]); $PAGE->set_url($url); @@ -58,6 +59,7 @@ if (!$manage && !\tool_dataprivacy\api::can_contact_dpo()) { } $mform = new tool_dataprivacy_data_request_form($url->out(false), ['manage' => !empty($manage)]); +$mform->set_data(['type' => $requesttype]); // Data request cancelled. if ($mform->is_cancelled()) { diff --git a/admin/tool/dataprivacy/lang/en/tool_dataprivacy.php b/admin/tool/dataprivacy/lang/en/tool_dataprivacy.php index 0cbc55f1aa4..ef8fd5d937e 100644 --- a/admin/tool/dataprivacy/lang/en/tool_dataprivacy.php +++ b/admin/tool/dataprivacy/lang/en/tool_dataprivacy.php @@ -92,6 +92,7 @@ $string['deletedefaults'] = 'Delete defaults: {$a}'; $string['deletedefaultsconfirmation'] = 'Are you sure you want to delete the default category and purpose for {$a} modules?'; $string['deleteexpiredcontextstask'] = 'Delete expired contexts'; $string['deleteexpireddatarequeststask'] = 'Delete files from completed data requests that have expired'; +$string['deletemyaccount'] = 'Delete my account'; $string['deletepurpose'] = 'Delete purpose'; $string['deletepurposetext'] = 'Are you sure you want to delete the purpose \'{$a}\'?'; $string['defaultssaved'] = 'Defaults saved'; diff --git a/admin/tool/dataprivacy/lib.php b/admin/tool/dataprivacy/lib.php index a9712d17378..276850e2b65 100644 --- a/admin/tool/dataprivacy/lib.php +++ b/admin/tool/dataprivacy/lib.php @@ -63,6 +63,28 @@ function tool_dataprivacy_myprofile_navigation(tree $tree, $user, $iscurrentuser $node = new core_user\output\myprofile\node('privacyandpolicies', 'datarequests', get_string('datarequests', 'tool_dataprivacy'), null, $url); $category->add_node($node); + + // Check if the user has an ongoing data export request. + $hasexportrequest = \tool_dataprivacy\api::has_ongoing_request($user->id, \tool_dataprivacy\api::DATAREQUEST_TYPE_EXPORT); + // Show data export link only if the user doesn't have an ongoing data export request. + if (!$hasexportrequest) { + $exportparams = ['type' => \tool_dataprivacy\api::DATAREQUEST_TYPE_EXPORT]; + $exporturl = new moodle_url('/admin/tool/dataprivacy/createdatarequest.php', $exportparams); + $exportnode = new core_user\output\myprofile\node('privacyandpolicies', 'requestdataexport', + get_string('requesttypeexport', 'tool_dataprivacy'), null, $exporturl); + $category->add_node($exportnode); + } + + // Check if the user has an ongoing data deletion request. + $hasdeleterequest = \tool_dataprivacy\api::has_ongoing_request($user->id, \tool_dataprivacy\api::DATAREQUEST_TYPE_DELETE); + // Show data deletion link only if the user doesn't have an ongoing data deletion request. + if (!$hasdeleterequest) { + $deleteparams = ['type' => \tool_dataprivacy\api::DATAREQUEST_TYPE_DELETE]; + $deleteurl = new moodle_url('/admin/tool/dataprivacy/createdatarequest.php', $deleteparams); + $deletenode = new core_user\output\myprofile\node('privacyandpolicies', 'requestdatadeletion', + get_string('deletemyaccount', 'tool_dataprivacy'), null, $deleteurl); + $category->add_node($deletenode); + } } $summaryurl = new moodle_url('/admin/tool/dataprivacy/summary.php'); -- 2.43.0