From 34ffdc2c816584720180580365c67b31d643a1fa 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;