diff --git a/enrol/editinstance.php b/enrol/editinstance.php index 2363340f918..047ab93e933 100644 --- a/enrol/editinstance.php +++ b/enrol/editinstance.php @@ -38,7 +38,10 @@ if (!$plugin) { } require_login($course); -require_capability('enrol/' . $type . ':config', $context); + +if (!has_any_capability(['enrol/' . $type . ':config', 'moodle/course:editcoursewelcomemessage'], $context)) { + throw new \moodle_exception('nopermissiontoaccesspage', 'error'); +} $url = new moodle_url('/enrol/editinstance.php', ['courseid' => $course->id, 'id' => $instanceid, 'type' => $type]); $PAGE->set_url($url); diff --git a/lang/en/role.php b/lang/en/role.php index 97fa8405422..915f240d8c3 100644 --- a/lang/en/role.php +++ b/lang/en/role.php @@ -180,6 +180,7 @@ $string['course:changesummary'] = 'Change course summary'; $string['course:configurecustomfields'] = 'Configure course custom fields'; $string['course:configuredownloadcontent'] = 'Configure download course content'; $string['course:downloadcoursecontent'] = 'Download course content'; +$string['course:editcoursewelcomemessage'] = 'Edit course welcome message'; $string['course:enrolconfig'] = 'Configure enrol instances in courses'; $string['course:enrolreview'] = 'Review course enrolments'; $string['course:setforcedlanguage'] = 'Force course or activity language'; diff --git a/lib/db/access.php b/lib/db/access.php index 69b687aef83..eda798dd5b1 100644 --- a/lib/db/access.php +++ b/lib/db/access.php @@ -2748,4 +2748,14 @@ $capabilities = array( 'manager' => CAP_ALLOW, ] ], + + // Allow users to edit course welcome messages. + 'moodle/course:editcoursewelcomemessage' => [ + 'captype' => 'write', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => [ + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW, + ], + ], );