From 3c1a874dd04308c4734e6a1f85388327ce1d1ffa Mon Sep 17 00:00:00 2001 From: Binon Date: Mon, 23 Jun 2025 13:23:32 +0100 Subject: [PATCH] Added validation on self entrol check --- local/telconfig/classes/observer.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/local/telconfig/classes/observer.php b/local/telconfig/classes/observer.php index 1eb7a13e75e..9d8c886e764 100644 --- a/local/telconfig/classes/observer.php +++ b/local/telconfig/classes/observer.php @@ -23,7 +23,7 @@ public static function enrol_instance_changed(\core\event\base $event): void { // Get enrol instance $enrol = $DB->get_record('enrol', ['id' => $event->objectid], '*', MUST_EXIST); - + // Only act if it's for 'self' enrolment. if (!isset($event->other['enrol']) || $event->other['enrol'] !== 'self') { return; @@ -59,12 +59,27 @@ public static function local_course_updated(\core\event\base $event): void { try { $course = $DB->get_record('course', ['id' => $event->objectid], '*', MUST_EXIST); + // Only proceed if the course has self enrolment enabled + if (!self::is_course_self_enrollable($course->id)) { + return; + } + // Rebuild and send metadata to API (as an update). $data = course_data_builder::build_course_metadata($course); helper::send_findwise_api($data); } catch (\dml_exception $e) { - debugging("Failed to process course update: " . $e->getMessage(), DEBUG_DEVELOPER); + debugging("Failed to process local course update: " . $e->getMessage(), DEBUG_DEVELOPER); } + } + + private static function is_course_self_enrollable(int $courseid): bool { + global $DB; + + return $DB->record_exists('enrol', [ + 'courseid' => $courseid, + 'enrol' => 'self', + 'status' => ENROL_INSTANCE_ENABLED, + ]); } }