Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CoTA
moodle-assignsubmission_dta
Commits
f6dbb788
Commit
f6dbb788
authored
Jan 28, 2025
by
Khalani
Browse files
Fix: delete personal data working + export data work in progress
parent
d562c166
Pipeline
#10976
passed with stage
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
dta/classes/privacy/provider.php
View file @
f6dbb788
...
@@ -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
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment