Commit f6dbb788 authored by Khalani's avatar Khalani
Browse files

Fix: delete personal data working + export data work in progress

No related merge requests found
Pipeline #10976 passed with stage
Showing with 49 additions and 28 deletions
+49 -28
...@@ -51,8 +51,8 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -51,8 +51,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table( $collection->add_database_table(
'assignsubmission_dta_summary', 'assignsubmission_dta_summary',
[ [
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid', 'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid', 'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'timestamp' => 'privacy:metadata:assignsubmission_dta_summary:timestamp', 'timestamp' => 'privacy:metadata:assignsubmission_dta_summary:timestamp',
'global_stacktrace' => 'privacy:metadata:assignsubmission_dta_summary:global_stacktrace', 'global_stacktrace' => 'privacy:metadata:assignsubmission_dta_summary:global_stacktrace',
'successful_competencies' => 'privacy:metadata:assignsubmission_dta_summary:successful_competencies', 'successful_competencies' => 'privacy:metadata:assignsubmission_dta_summary:successful_competencies',
...@@ -65,8 +65,8 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -65,8 +65,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table( $collection->add_database_table(
'assignsubmission_dta_result', 'assignsubmission_dta_result',
[ [
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid', 'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid', 'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'package_name' => 'privacy:metadata:assignsubmission_dta_result:package_name', 'package_name' => 'privacy:metadata:assignsubmission_dta_result:package_name',
'class_name' => 'privacy:metadata:assignsubmission_dta_result:class_name', 'class_name' => 'privacy:metadata:assignsubmission_dta_result:class_name',
'name' => 'privacy:metadata:assignsubmission_dta_result:name', 'name' => 'privacy:metadata:assignsubmission_dta_result:name',
...@@ -84,8 +84,8 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -84,8 +84,8 @@ class provider implements \core_privacy\local\metadata\provider,
$collection->add_database_table( $collection->add_database_table(
'assignsubmission_dta_recommendations', 'assignsubmission_dta_recommendations',
[ [
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid', 'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid', 'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'topic'=> 'privacy:metadata:assignsubmission_dta_recommendations:topic', 'topic'=> 'privacy:metadata:assignsubmission_dta_recommendations:topic',
'exercise_name'=> 'privacy:metadata:assignsubmission_dta_recommendations:exercise_name', 'exercise_name'=> 'privacy:metadata:assignsubmission_dta_recommendations:exercise_name',
'url'=> 'privacy:metadata:assignsubmission_dta_recommendations:url', 'url'=> 'privacy:metadata:assignsubmission_dta_recommendations:url',
...@@ -96,8 +96,8 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -96,8 +96,8 @@ class provider implements \core_privacy\local\metadata\provider,
); );
$collection->add_external_location_link('dta_backend', [ $collection->add_external_location_link('dta_backend', [
'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid', 'assignment_id' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid', 'submission_id' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
'submissioncontent' => 'privacy:metadata:core_files', 'submissioncontent' => 'privacy:metadata:core_files',
], ],
'privacy:metadata:dta_backend' 'privacy:metadata:dta_backend'
...@@ -150,7 +150,11 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -150,7 +150,11 @@ class provider implements \core_privacy\local\metadata\provider,
$user = new \stdClass(); $user = new \stdClass();
$assign = $exportdata->get_assign(); $assign = $exportdata->get_assign();
$submission = $exportdata->get_pluginobject(); $submission = $exportdata->get_pluginobject();
$files = get_files($submission, $user); error_log('Submission class type: ' . get_class($submission));
error_log('class type >>> ');
error_log(print_r(get_class($submission), true));
$files = (new self)->get_files($submission, $user);
foreach ($files as $file) { foreach ($files as $file) {
$userid = $exportdata->get_pluginobject()->userid; $userid = $exportdata->get_pluginobject()->userid;
$dtaresultsummary = DBUtils::getresultsummaryfromdatabase($assign->id, $submission->id); $dtaresultsummary = DBUtils::getresultsummaryfromdatabase($assign->id, $submission->id);
...@@ -178,17 +182,20 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -178,17 +182,20 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submission_for_context(assign_plugin_request_data $requestdata) { public static function delete_submission_for_context(assign_plugin_request_data $requestdata) {
global $DB; global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_context($requestdata->get_context()); // \core_plagiarism\privacy\provider::delete_plagiarism_for_context($requestdata->get_context());
$fs = get_file_storage(); $fs = get_file_storage();
$fs->delete_area_files($requestdata->get_context()->id, 'assignsubmission_dta', ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION); $fs->delete_area_files($requestdata->get_context()->id, 'assignsubmission_dta', \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION);
$assignmentid = $requestdata->get_assign()->get_instance()->id; $assignmentid = $requestdata->get_assign()->get_instance()->id;
error_log('ASSIGNMENTID DEL for context >>> ');
error_log(print_r($assignmentid, true));
// Delete records from assignsubmission_dta tables. // Delete records from assignsubmission_dta tables.
$DB->delete_records('assignsubmission_dta_result', ['assignmentid' => $assignmentid]); $DB->delete_records('assignsubmission_dta_result', ['assignment_id' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_summary', ['assignmentid' => $assignmentid]); $DB->delete_records('assignsubmission_dta_summary', ['assignment_id' => $assignmentid]);
$DB->delete_records('assignsubmission_dta_recommendations', ['assignmentid' => $assignmentid]); $DB->delete_records('assignsubmission_dta_recommendations', ['assignment_id' => $assignmentid]);
} }
/** /**
...@@ -199,27 +206,37 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -199,27 +206,37 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submission_for_userid(assign_plugin_request_data $deletedata) { public static function delete_submission_for_userid(assign_plugin_request_data $deletedata) {
global $DB; global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_user($deletedata->get_user()->id, $deletedata->get_context()); // \core_plagiarism\privacy\provider::delete_plagiarism_for_user($deletedata->get_user()->id, $deletedata->get_context());
$assignmentid = $deletedata->get_assign()->get_instance()->id; $assignmentid = $deletedata->get_assign()->get_instance()->id;
$submissionid = $deletedata->get_pluginobject()->id; $submissionid = $deletedata->get_pluginobject()->id;
$fs = get_file_storage(); $fs = get_file_storage();
$fs->delete_area_files($deletedata->get_context()->id, 'assignsubmission_dta', ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION, // $fs->delete_area_files($deletedata->get_context()->id, 'assignsubmission_dta', ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
// $submissionid);
$fs->delete_area_files($deletedata->get_context()->id, 'assignsubmission_dta', \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
$submissionid); $submissionid);
error_log('SUBMISSIONID DEL for uid >>> ');
error_log(print_r($submissionid, true));
error_log('ASSIGNMENTID DEL for uid >>> ');
error_log(print_r($assignmentid, true));
// Delete records from assignsubmission_dta tables. Also possible with a list as below. // Delete records from assignsubmission_dta tables. Also possible with a list as below.
$DB->delete_records('assignsubmission_dta_result', [ $DB->delete_records('assignsubmission_dta_result', [
'assignmentid' => $assignmentid, 'assignment_id' => $assignmentid,
'submissionid' => $submissionid, 'submission_id' => $submissionid,
]); ]);
$DB->delete_records('assignsubmission_dta_summary', [ $DB->delete_records('assignsubmission_dta_summary', [
'assignmentid' => $assignmentid, 'assignment_id' => $assignmentid,
'submissionid' => $submissionid, 'submission_id' => $submissionid,
]); ]);
$DB->delete_records('assignsubmission_dta_recommendations', [ $DB->delete_records('assignsubmission_dta_recommendations', [
'assignmentid' => $assignmentid, 'assignment_id' => $assignmentid,
'submissionid' => $submissionid, 'submission_id' => $submissionid,
]); ]);
} }
...@@ -235,20 +252,24 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -235,20 +252,24 @@ class provider implements \core_privacy\local\metadata\provider,
public static function delete_submissions(assign_plugin_request_data $deletedata) { public static function delete_submissions(assign_plugin_request_data $deletedata) {
global $DB; global $DB;
\core_plagiarism\privacy\provider::delete_plagiarism_for_users($deletedata->get_userids(), $deletedata->get_context()); // \core_plagiarism\privacy\provider::delete_plagiarism_for_users($deletedata->get_userids(), $deletedata->get_context());
if (empty($deletedata->get_submissionids())) { if (empty($deletedata->get_submissionids())) {
return; return;
} }
$fs = get_file_storage(); $fs = get_file_storage();
list($sql, $params) = $DB->get_in_or_equal($deletedata->get_submissionids(), SQL_PARAMS_NAMED); list($sql, $params) = $DB->get_in_or_equal($deletedata->get_submissionids(), SQL_PARAMS_NAMED);
$fs->delete_area_files_select($deletedata->get_context()->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA, $fs->delete_area_files_select($deletedata->get_context()->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA_SUBMISSION,
$sql, $params); $sql, $params);
$params['assignid'] = $deletedata->get_assignid(); $params['assignid'] = $deletedata->get_assignid();
$DB->delete_records_select('assignsubmission_dta_result', "assignmentid = :assignid AND submissionid $sql", $params); error_log('sql >>> ');
$DB->delete_records_select('assignsubmission_dta_summary', "assignmentid = :assignid AND submissionid $sql", $params); error_log(print_r($sql, true));
$DB->delete_records_select('assignsubmission_dta_recommendations', "assignmentid = :assignid AND submissionid $sql", $params); error_log('PARAMS >>> ');
error_log(print_r($params, true));
$DB->delete_records_select('assignsubmission_dta_result', "assignment_id = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_summary', "assignment_id = :assignid AND submissionid $sql", $params);
$DB->delete_records_select('assignsubmission_dta_recommendations', "assignment_id = :assignid AND submissionid $sql", $params);
} }
/** /**
...@@ -264,7 +285,7 @@ class provider implements \core_privacy\local\metadata\provider, ...@@ -264,7 +285,7 @@ class provider implements \core_privacy\local\metadata\provider,
$files = $fs->get_area_files($this->assignment->get_context()->id, $files = $fs->get_area_files($this->assignment->get_context()->id,
'assignsubmission_file', 'assignsubmission_file',
ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION, \assignsubmission_dta\privacy\provider::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION,
$submission->id, $submission->id,
'timemodified', 'timemodified',
false); false);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment