From d7679360529ca0e83d994426c30e59b28c75ed50 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Wed, 11 Dec 2024 17:21:39 +0000 Subject: [PATCH] MDL-83990 course: ensure course start/end dates set in external call. --- course/externallib.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/course/externallib.php b/course/externallib.php index c4825433f0e..b79c4170875 100644 --- a/course/externallib.php +++ b/course/externallib.php @@ -951,6 +951,8 @@ class core_course_external extends external_api { $params = self::validate_parameters(self::create_courses_parameters(), array('courses' => $courses)); + $courseconfig = get_config('moodlecourse'); + $availablethemes = core_component::get_plugin_list('theme'); $availablelangs = get_string_manager()->get_list_of_translations(); @@ -977,6 +979,14 @@ class core_course_external extends external_api { throw new moodle_exception('errorinvalidparam', 'webservice', '', 'shortname'); } + // Make sure start/end date are correctly set. + if (!array_key_exists('startdate', $course)) { + $course['startdate'] = usergetmidnight(time()); + } + if (!array_key_exists('enddate', $course) && $courseconfig->courseenddateenabled) { + $course['enddate'] = $course['startdate'] + $courseconfig->courseduration; + } + // Make sure lang is valid if (array_key_exists('lang', $course)) { if (empty($availablelangs[$course['lang']])) { @@ -1005,7 +1015,6 @@ class core_course_external extends external_api { } //set default value for completion - $courseconfig = get_config('moodlecourse'); if (completion_info::is_enabled_for_site()) { if (!array_key_exists('enablecompletion', $course)) { $course['enablecompletion'] = $courseconfig->enablecompletion;