diff --git a/classes/local/table/interaction_remaining_table.php b/classes/local/table/interaction_remaining_table.php index 27cc90e9c7230cc0c9c2530e090077dfc9d3f7cc..d182632932928c136144f2fcd7f76ec86cbdbfd6 100644 --- a/classes/local/table/interaction_remaining_table.php +++ b/classes/local/table/interaction_remaining_table.php @@ -164,7 +164,11 @@ class interaction_remaining_table extends interaction_table { } // Otherwise, show latest action commited by user. global $CFG; - $userlink = \html_writer::link($CFG->wwwroot . '/user/profile.php?id=' . $row->userid, fullname($row)); + if($row->userid === -1) { + $userlink = get_string("anonymous_user"); + } else { + $userlink = \html_writer::link($CFG->wwwroot . '/user/profile.php?id=' . $row->userid, fullname($row)); + } $interactionlib = lib_manager::get_step_interactionlib($row->subpluginname); return $interactionlib->get_action_string($row->action, $userlink); } diff --git a/classes/privacy/provider.php b/classes/privacy/provider.php index 798377f6e839767f20d55102350d3becb8324d19..a77ccf2a8e1c8cbabd0be437f5da246282e4d8eb 100644 --- a/classes/privacy/provider.php +++ b/classes/privacy/provider.php @@ -26,9 +26,7 @@ namespace tool_lifecycle\privacy; use core_privacy\local\metadata\collection; use core_privacy\local\request\approved_contextlist; -use core_privacy\local\request\context; use core_privacy\local\request\contextlist; -use core_privacy\local\request\core_user_data_provider; use core_privacy\local\request\writer; defined('MOODLE_INTERNAL') || die(); @@ -103,7 +101,12 @@ class provider implements \core_privacy\local\metadata\provider, * @param context $context The specific context to delete data for. */ public static function delete_data_for_all_users_in_context(\context $context) { - + global $DB; + if ($context instanceof \context_system) { + $sql = "UPDATE {tool_lifecycle_action_log} + SET userid = -1"; + $DB->execute($sql); + } } /** @@ -112,6 +115,14 @@ class provider implements \core_privacy\local\metadata\provider, * @param approved_contextlist $contextlist The approved contexts and user information to delete information for. */ public static function delete_data_for_user(approved_contextlist $contextlist) { - // TODO: Implement delete_data_for_user() method. + global $DB; + foreach ($contextlist->get_contexts() as $context) { + if ($context instanceof \context_system) { + $sql = "UPDATE {tool_lifecycle_action_log} + SET userid = -1 + WHERE userid = :userid"; + $DB->execute($sql, array('userid' => $contextlist->get_user()->id)); + } + } } }