From 2939efff84a44d64ddbf0d7cbb4db8580e0d262a Mon Sep 17 00:00:00 2001 From: Mihail Geshoski Date: Tue, 6 Oct 2020 13:24:05 +0800 Subject: [PATCH] MDL-69751 course: Handle missing guest user context Makes sure the guest user context exists when fetching the recommended modules. If the context does not exist an exception is being thrown describing the problem. --- course/classes/local/service/content_item_service.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/course/classes/local/service/content_item_service.php b/course/classes/local/service/content_item_service.php index ca60efbc146..832a7eb63f8 100644 --- a/course/classes/local/service/content_item_service.php +++ b/course/classes/local/service/content_item_service.php @@ -110,7 +110,12 @@ class content_item_service { throw new \coding_exception('The guest user does not exist in the database.'); } - $favourites = $this->get_content_favourites(self::RECOMMENDATION_PREFIX, \context_user::instance($CFG->siteguest)); + // Make sure the guest user context exists. + if (!$guestusercontext = \context_user::instance($CFG->siteguest, false)) { + throw new \coding_exception('The guest user context does not exist.'); + } + + $favourites = $this->get_content_favourites(self::RECOMMENDATION_PREFIX, $guestusercontext); $recommendationcache->set($CFG->siteguest, $favourites); return $favourites;