Browse files

MDL-29469 Enrolments - fixing the role assignment access elevation issue

  • Loading branch information...
1 parent 79b0fec commit 2c5857186bedacee6399b3ae37405fd1091096ae @jsnfwlr jsnfwlr committed Oct 27, 2011
Showing with 23 additions and 3 deletions.
  1. +22 −2 enrol/self/edit_form.php
  2. +1 −1 enrol/self/lang/en/enrol_self.php
View
24 enrol/self/edit_form.php
@@ -59,9 +59,9 @@ function definition() {
$mform->setDefault('customint1', $plugin->get_config('groupkey'));
if ($instance->id) {
- $roles = get_default_enrol_roles($context, $instance->roleid);
+ $roles = $this->extend_assignable_roles($context, $instance->roleid);
} else {
- $roles = get_default_enrol_roles($context, $plugin->get_config('roleid'));
+ $roles = $this->extend_assignable_roles($context, $plugin->get_config('roleid'));
}
$mform->addElement('select', 'roleid', get_string('role', 'enrol_self'), $roles);
$mform->setDefault('roleid', $plugin->get_config('roleid'));
@@ -156,4 +156,24 @@ function validation($data, $files) {
return $errors;
}
+
+ /**
+ * Gets a list of roles that this user can assign for the course as the default for self-enrolment
+ *
+ * @param context $context the context.
+ * @param integer $defaultrole the id of the role that is set as the default for self-enrolement
+ * @return array index is the role id, value is the role name
+ */
+ function extend_assignable_roles($context, $defaultrole) {
+ global $DB;
+ $roles = get_assignable_roles($context);
+ $sql = "SELECT r.id, r.name
+ FROM {role} r
+ WHERE r.id = $defaultrole";
+ $results = $DB->get_record_sql($sql);
+ if (isset($results->name)) {
+ $roles[$results->id] = $results->name;
+ }
+ return $roles;
+ }
}
View
2 enrol/self/lang/en/enrol_self.php
@@ -61,7 +61,7 @@
$string['pluginname_desc'] = 'The self enrolment plugin allows users to choose which courses they want to participate in. The courses may be protected by an enrolment key. Internally the enrolment is done via the manual enrolment plugin which has to be enabled in the same course.';
$string['requirepassword'] = 'Require enrolment key';
$string['requirepassword_desc'] = 'Require enrolment key in new courses and prevent removing of enrolment key from existing courses.';
-$string['role'] = 'Assign role';
+$string['role'] = 'Default assigned role';
$string['self:config'] = 'Configure self enrol instances';
$string['self:manage'] = 'Manage enrolled users';
$string['self:unenrol'] = 'Unenrol users from course';

0 comments on commit 2c58571

Please sign in to comment.