From 502336f215494c25477cbef53392bbdd1f28657e Mon Sep 17 00:00:00 2001 From: Andrew Hancox Date: Thu, 1 Oct 2015 18:04:40 +0100 Subject: [PATCH] MDL-26935 course: Require course:renameroles to rename roles. --- course/edit_form.php | 21 ++++++++++++--------- lang/en/role.php | 1 + lib/db/access.php | 10 ++++++++++ version.php | 2 +- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/course/edit_form.php b/course/edit_form.php index 3faea92a780..8fe779bdd38 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -288,16 +288,19 @@ class course_edit_form extends moodleform { $options[0] = get_string('none'); $mform->addElement('select', 'defaultgroupingid', get_string('defaultgrouping', 'group'), $options); - // Customizable role names in this course. - $mform->addElement('header','rolerenaming', get_string('rolerenaming')); - $mform->addHelpButton('rolerenaming', 'rolerenaming'); + if ((empty($course->id) && guess_if_creator_will_have_course_capability('moodle/course:renameroles', $categorycontext)) + || (!empty($course->id) && has_capability('moodle/course:renameroles', $coursecontext))) { + // Customizable role names in this course. + $mform->addElement('header', 'rolerenaming', get_string('rolerenaming')); + $mform->addHelpButton('rolerenaming', 'rolerenaming'); - if ($roles = get_all_roles()) { - $roles = role_fix_names($roles, null, ROLENAME_ORIGINAL); - $assignableroles = get_roles_for_contextlevels(CONTEXT_COURSE); - foreach ($roles as $role) { - $mform->addElement('text', 'role_'.$role->id, get_string('yourwordforx', '', $role->localname)); - $mform->setType('role_'.$role->id, PARAM_TEXT); + if ($roles = get_all_roles()) { + $roles = role_fix_names($roles, null, ROLENAME_ORIGINAL); + $assignableroles = get_roles_for_contextlevels(CONTEXT_COURSE); + foreach ($roles as $role) { + $mform->addElement('text', 'role_' . $role->id, get_string('yourwordforx', '', $role->localname)); + $mform->setType('role_' . $role->id, PARAM_TEXT); + } } } diff --git a/lang/en/role.php b/lang/en/role.php index 4b2ee09ffa0..f429e4cb9ab 100644 --- a/lang/en/role.php +++ b/lang/en/role.php @@ -141,6 +141,7 @@ $string['course:managescales'] = 'Manage scales'; $string['course:markcomplete'] = 'Mark users as complete in course completion'; $string['course:movesections'] = 'Move sections'; $string['course:publish'] = 'Publish a course into hub'; +$string['course:renameroles'] = 'Rename roles'; $string['course:request'] = 'Request new courses'; $string['course:reset'] = 'Reset course'; $string['course:reviewotherusers'] = 'Review other users'; diff --git a/lib/db/access.php b/lib/db/access.php index 7dac9293615..ccc30c9856b 100644 --- a/lib/db/access.php +++ b/lib/db/access.php @@ -982,6 +982,16 @@ $capabilities = array( 'clonepermissionsfrom' => 'moodle/course:update' ), + 'moodle/course:renameroles' => array( + 'captype' => 'write', + 'contextlevel' => CONTEXT_COURSE, + 'archetypes' => array( + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ), + 'clonepermissionsfrom' => 'moodle/course:update' + ), + 'moodle/course:changeidnumber' => array( 'riskbitmask' => RISK_XSS, diff --git a/version.php b/version.php index 19abbe40295..4622b2aa700 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2015092400.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2015092400.01; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes.