mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 20:42:22 +02:00
MDL-15785 new options for enforcing of enrolment key commplexity and requirements
This commit is contained in:
parent
36641dd264
commit
826725329a
@ -322,6 +322,13 @@ class course_edit_form extends moodleform {
|
||||
$mform->setDefault('enrolpassword', $courseconfig->enrolpassword);
|
||||
$mform->setType('enrolpassword', PARAM_RAW);
|
||||
|
||||
if (empty($course) or ($course->password !== '' and $course->id != SITEID)) {
|
||||
// do not require password in existing courses that do not have password yet - backwards compatibility ;-)
|
||||
if (!empty($CFG->enrol_manual_requirekey)) {
|
||||
$mform->addRule('enrolpassword', get_string('required'), 'required', null, 'client');
|
||||
}
|
||||
}
|
||||
|
||||
$choices = array();
|
||||
$choices['0'] = get_string('guestsno');
|
||||
$choices['1'] = get_string('guestsyes');
|
||||
@ -451,7 +458,7 @@ class course_edit_form extends moodleform {
|
||||
|
||||
/// perform some extra moodle validation
|
||||
function validation($data, $files) {
|
||||
global $DB;
|
||||
global $DB, $CFG;
|
||||
|
||||
$errors = parent::validation($data, $files);
|
||||
if ($foundcourses = $DB->get_records('course', array('shortname'=>$data['shortname']))) {
|
||||
@ -473,6 +480,17 @@ class course_edit_form extends moodleform {
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($CFG->enrol_manual_usepasswordpolicy) and isset($data['enrolpassword']) and $data['enrolpassword'] != '') {
|
||||
$course = $this->_customdata['course'];
|
||||
if ($course->password !== $data['enrolpassword']) {
|
||||
// enforce password policy only if changing password - backwards compatibility
|
||||
$errmsg = '';
|
||||
if (!check_password_policy($data['enrolpassword'], $errmsg)) {
|
||||
$errors['enrolpassword'] = $errmsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
}
|
||||
|
@ -31,5 +31,33 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">enrol_manual_usepasswordpolicy:</td>
|
||||
<td>
|
||||
<?php
|
||||
$choices = array();
|
||||
$choices['0'] = get_string('no');
|
||||
$choices['1'] = get_string('yes');
|
||||
choose_from_menu ($choices, 'enrol_manual_usepasswordpolicy', $frm->enrol_manual_usepasswordpolicy, '');
|
||||
?>
|
||||
</td><td>
|
||||
<?php print_string('enrol_manual_usepasswordpolicy', 'enrol_manual') ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">enrol_manual_requirekey:</td>
|
||||
<td>
|
||||
<?php
|
||||
$choices = array();
|
||||
$choices['0'] = get_string('no');
|
||||
$choices['1'] = get_string('yes');
|
||||
choose_from_menu ($choices, 'enrol_manual_requirekey', $frm->enrol_manual_requirekey, '');
|
||||
?>
|
||||
</td><td>
|
||||
<?php print_string('enrol_manual_requirekey', 'enrol_manual') ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
@ -224,6 +224,14 @@ function config_form($frm) {
|
||||
$frm->enrol_manual_showhint = 1;
|
||||
}
|
||||
|
||||
if (!isset($frm->enrol_manual_usepasswordpolicy)) {
|
||||
$frm->enrol_manual_usepasswordpolicy = 0;
|
||||
}
|
||||
|
||||
if (!isset($frm->enrol_manual_requirekey)) {
|
||||
$frm->enrol_manual_requirekey = 0;
|
||||
}
|
||||
|
||||
include ("$CFG->dirroot/enrol/manual/config.html");
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ class group_form extends moodleform {
|
||||
}
|
||||
|
||||
function validation($data, $files) {
|
||||
global $COURSE, $DB;
|
||||
global $COURSE, $DB, $CFG;
|
||||
|
||||
$errors = parent::validation($data, $files);
|
||||
|
||||
@ -54,6 +54,14 @@ class group_form extends moodleform {
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($CFG->enrol_manual_usepasswordpolicy) and $data['enrolmentkey'] != '' and $group->enrolmentkey !== $data['enrolmentkey']) {
|
||||
// enforce password policy only if changing password
|
||||
$errmsg = '';
|
||||
if (!check_password_policy($data['enrolmentkey'], $errmsg)) {
|
||||
$errors['enrolmentkey'] = $errmsg;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (groups_get_group_by_name($COURSE->id, $name)) {
|
||||
$errors['name'] = get_string('groupnameexists', 'group', $name);
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ $string['description'] = 'This is the default form of enrolment. There are two m
|
||||
</ul>';
|
||||
$string['enrolmentkeyerror'] = 'That enrolment key was incorrect, please try again.';
|
||||
$string['enrolname'] = 'Internal Enrolment';
|
||||
$string['enrol_manual_requirekey'] = 'Require course enrolment keys in new courses and prevent removing of existing keys.';
|
||||
$string['enrol_manual_showhint'] = 'Enable this setting to reveal the first character of the enrolment key as a hint if one enters an incorrect key.';
|
||||
$string['enrol_manual_usepasswordpolicy'] = 'Use current user password policy for course enrolment keys.';
|
||||
$string['keyholderrole' ] = 'The role of the user that holds the enrolment key for a course. Displayed to students attempting to enrol on the course.';
|
||||
?>
|
||||
|
Loading…
x
Reference in New Issue
Block a user