MDL-35104 auth: Don't allow modification of username
Presently it is either unreliable, or not possible to change the username of a user created with an authentication plugin. In some cases it is even hard coded to fail. Ideally we would sync the username, and the issue MDL-21928 exists to address that. However, in the mean time we should not allow the username of an external user to be modified.
This commit is contained in:
@@ -67,17 +67,19 @@ class user_editadvanced_form extends moodleform {
|
||||
// Print the required moodle fields first.
|
||||
$mform->addElement('header', 'moodle', $strgeneral);
|
||||
|
||||
$mform->addElement('text', 'username', get_string('username'), 'size="20"');
|
||||
$mform->addRule('username', $strrequired, 'required', null, 'client');
|
||||
$mform->setType('username', PARAM_RAW);
|
||||
|
||||
$auths = core_component::get_plugin_list('auth');
|
||||
$enabled = get_string('pluginenabled', 'core_plugin');
|
||||
$disabled = get_string('plugindisabled', 'core_plugin');
|
||||
$authoptions = array($enabled => array(), $disabled => array());
|
||||
$cannotchangepass = array();
|
||||
$cannotchangeusername = array();
|
||||
foreach ($auths as $auth => $unused) {
|
||||
$authinst = get_auth_plugin($auth);
|
||||
|
||||
if (!$authinst->is_internal()) {
|
||||
$cannotchangeusername[] = $auth;
|
||||
}
|
||||
|
||||
$passwordurl = $authinst->change_password_url();
|
||||
if (!($authinst->can_change_password() && empty($passwordurl))) {
|
||||
if ($userid < 1 and $authinst->is_internal()) {
|
||||
@@ -93,6 +95,12 @@ class user_editadvanced_form extends moodleform {
|
||||
$authoptions[$disabled][$auth] = get_string('pluginname', "auth_{$auth}");
|
||||
}
|
||||
}
|
||||
|
||||
$mform->addElement('text', 'username', get_string('username'), 'size="20"');
|
||||
$mform->addHelpButton('username', 'username', 'auth');
|
||||
$mform->setType('username', PARAM_RAW);
|
||||
$mform->disabledIf('username', 'auth', 'in', $cannotchangeusername);
|
||||
|
||||
$mform->addElement('selectgroups', 'auth', get_string('chooseauthmethod', 'auth'), $authoptions);
|
||||
$mform->addHelpButton('auth', 'chooseauthmethod', 'auth');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user