From ecce451878dac9402a6c1be7575d634d72dacb95 Mon Sep 17 00:00:00 2001 From: Yair Spielmann Date: Mon, 18 Jan 2016 13:48:30 +0000 Subject: [PATCH] MDL-52811 course: Require course:setforcedlanguage to force language. --- course/edit_form.php | 7 +++++-- lang/en/role.php | 1 + lib/db/access.php | 10 ++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/course/edit_form.php b/course/edit_form.php index 4ffe1729b74..3155ddfd1a4 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -205,8 +205,11 @@ class course_edit_form extends moodleform { $languages=array(); $languages[''] = get_string('forceno'); $languages += get_string_manager()->get_list_of_translations(); - $mform->addElement('select', 'lang', get_string('forcelanguage'), $languages); - $mform->setDefault('lang', $courseconfig->lang); + if ((empty($course->id) && guess_if_creator_will_have_course_capability('moodle/course:setforcedlanguage', $categorycontext)) + || (!empty($course->id) && has_capability('moodle/course:setforcedlanguage', $coursecontext))) { + $mform->addElement('select', 'lang', get_string('forcelanguage'), $languages); + $mform->setDefault('lang', $courseconfig->lang); + } // Multi-Calendar Support - see MDL-18375. $calendartypes = \core_calendar\type_factory::get_list_of_calendar_types(); diff --git a/lang/en/role.php b/lang/en/role.php index f35cf01c6e6..cfc56992ce0 100644 --- a/lang/en/role.php +++ b/lang/en/role.php @@ -164,6 +164,7 @@ $string['course:changeshortname'] = 'Change course short name'; $string['course:changesummary'] = 'Change course summary'; $string['course:enrolconfig'] = 'Configure enrol instances in courses'; $string['course:enrolreview'] = 'Review course enrolments'; +$string['course:setforcedlanguage'] = 'Force course language'; $string['course:ignoreavailabilityrestrictions'] = 'Ignore availability restrictions'; $string['course:ignorefilesizelimits'] = 'Use files larger than any file size restrictions'; $string['course:isincompletionreports'] = 'Be shown on completion reports'; diff --git a/lib/db/access.php b/lib/db/access.php index 323747d9d40..2efdccff27c 100644 --- a/lib/db/access.php +++ b/lib/db/access.php @@ -1062,6 +1062,16 @@ $capabilities = array( 'clonepermissionsfrom' => 'moodle/course:update' ), + 'moodle/course:setforcedlanguage' => array( + 'captype' => 'write', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ), + 'clonepermissionsfrom' => 'moodle/course:update' + ), + 'moodle/site:viewparticipants' => array(