From bf51608d1c9150df2c656a3e4df74ed540874509 Mon Sep 17 00:00:00 2001 From: Michael Lynn Date: Thu, 4 Jun 2020 17:30:28 +0100 Subject: [PATCH 1/2] Issue 606: Transforming event having userid=0 creates exception fix. --- src/transformer/events/core/course_viewed.php | 7 ++++++- src/transformer/events/core/user_created.php | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/transformer/events/core/course_viewed.php b/src/transformer/events/core/course_viewed.php index 51ecd1494..438f0f687 100644 --- a/src/transformer/events/core/course_viewed.php +++ b/src/transformer/events/core/course_viewed.php @@ -21,8 +21,13 @@ use src\transformer\utils as utils; function course_viewed(array $config, \stdClass $event) { + global $CFG; + $repo = $config['repo']; - $user = $repo->read_record_by_id('user', $event->userid); + + // Get relateduserid or a valid userid for guest. + $userid = $event->userid == 0 && isset($CFG->siteguest) ? $CFG->siteguest : $event->userid; + $user = $repo->read_record_by_id('user', $userid); $course = $repo->read_record_by_id('course', $event->courseid); $lang = utils\get_course_lang($course); diff --git a/src/transformer/events/core/user_created.php b/src/transformer/events/core/user_created.php index 611fcb020..79e75a345 100644 --- a/src/transformer/events/core/user_created.php +++ b/src/transformer/events/core/user_created.php @@ -21,8 +21,14 @@ use src\transformer\utils as utils; function user_created(array $config, \stdClass $event) { + global $CFG; + $repo = $config['repo']; - $user = $repo->read_record_by_id('user', $event->relateduserid); + + // Get a valid user for guest. + $relateduserid = $event->relateduserid == 0 && isset($CFG->siteguest) ? $CFG->siteguest : $event->relateduserid; + $user = $repo->read_record_by_id('user', $relateduserid); + $lang = $config['source_lang']; return [[ From 3d2b77793f1889bcf4af39c5e738eda3e0503043 Mon Sep 17 00:00:00 2001 From: Michael Lynn Date: Fri, 5 Jun 2020 15:20:01 +0100 Subject: [PATCH 2/2] Issue 606: set the relateduserid or userid if not set to 0 otherwise we get incorrect number of parameters when inserting into the failed log --- src/transformer/events/core/course_viewed.php | 5 ++++- src/transformer/events/core/user_created.php | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/transformer/events/core/course_viewed.php b/src/transformer/events/core/course_viewed.php index 438f0f687..644be281c 100644 --- a/src/transformer/events/core/course_viewed.php +++ b/src/transformer/events/core/course_viewed.php @@ -25,7 +25,10 @@ function course_viewed(array $config, \stdClass $event) { $repo = $config['repo']; - // Get relateduserid or a valid userid for guest. + // Get the userid or a valid userid for guest. + if (!isset($event->userid)) { + $event->userid = 0; + } $userid = $event->userid == 0 && isset($CFG->siteguest) ? $CFG->siteguest : $event->userid; $user = $repo->read_record_by_id('user', $userid); $course = $repo->read_record_by_id('course', $event->courseid); diff --git a/src/transformer/events/core/user_created.php b/src/transformer/events/core/user_created.php index 79e75a345..a3e26a80c 100644 --- a/src/transformer/events/core/user_created.php +++ b/src/transformer/events/core/user_created.php @@ -25,7 +25,10 @@ function user_created(array $config, \stdClass $event) { $repo = $config['repo']; - // Get a valid user for guest. + // Get the relateduserid or a valid relateduserid from the guest userid. + if (!isset($event->relateduserid)) { + $event->relateduserid = 0; + } $relateduserid = $event->relateduserid == 0 && isset($CFG->siteguest) ? $CFG->siteguest : $event->relateduserid; $user = $repo->read_record_by_id('user', $relateduserid);