Bugfix and simplification in privacy provider

This commit is contained in:
PMKuipers 2023-12-13 21:15:49 +01:00
parent ad02879928
commit 4ca2c875ef

View File

@ -195,15 +195,8 @@ class provider implements \core_privacy\local\metadata\provider,
foreach ($contextlist->get_contexts() as $context) { foreach ($contextlist->get_contexts() as $context) {
if ($context->contextlevel == CONTEXT_SYSTEM) { if ($context->contextlevel == CONTEXT_SYSTEM) {
$sql = "SELECT s.id FROM {local_treestudyplan} // Delete all associations for this user if the system context is included.
INNER JOIN {local_treestudyplan_user} a ON a.studyplan_id = s.id $DB->delete_records("local_treestudyplan_user", ["user_id" => $user->id]);
WHERE ( a.user_id = :userid
AND ( s.context_id IS NULL OR s.context_id == 0 OR s.context_id = :contextid))";
$planids = $DB->get_fieldset_sql($sql, ["contextid" => $context->id, "userid" => $user->id]);
foreach ($planids as $planid) {
$DB->delete_records("local_treestudyplan_user", ["studyplan_id" => $planid, "user_id" => $user->id]);
}
// Also delete all invitations for this user. // Also delete all invitations for this user.
$DB->delete_records("local_treestudyplan_invit", ["user_id" => $user->id]); $DB->delete_records("local_treestudyplan_invit", ["user_id" => $user->id]);