From 92b2ccc7aa7c212c38c52d23831c8bf81f949004 Mon Sep 17 00:00:00 2001 From: James C <5689414+james-cnz@users.noreply.github.com> Date: Sat, 29 Mar 2025 10:52:14 +1300 Subject: [PATCH] MDL-85036 completion: Properly initialize cm_info for user completion --- .../completion/classes/external/completion_info_exporter.php | 2 +- public/course/classes/cm_info.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/completion/classes/external/completion_info_exporter.php b/public/completion/classes/external/completion_info_exporter.php index 916d016374d..3dfc045d1a4 100644 --- a/public/completion/classes/external/completion_info_exporter.php +++ b/public/completion/classes/external/completion_info_exporter.php @@ -53,7 +53,7 @@ class completion_info_exporter extends \core\external\exporter { */ public function __construct(object $course, object $cm, int $userid, array $related = []) { $this->course = $course; - $this->cminfo = \cm_info::create($cm); + $this->cminfo = \cm_info::create($cm, $userid); $this->userid = $userid; parent::__construct([], $related); } diff --git a/public/course/classes/cm_info.php b/public/course/classes/cm_info.php index c3246e50e72..f131dd11420 100644 --- a/public/course/classes/cm_info.php +++ b/public/course/classes/cm_info.php @@ -1412,8 +1412,8 @@ class cm_info implements IteratorAggregate { if (!$cm) { return null; } - // If it is already a cm_info object, just return it. - if ($cm instanceof cm_info) { + // If it is already a cm_info object with the right user, just return it. + if (($cm instanceof cm_info) && ($cm->get_modinfo()->userid == $userid)) { return $cm; } // Otherwise load modinfo.