Skip to content

Commit

Permalink
Fields set as locked are now disabled using the forms class rather than
Browse files Browse the repository at this point in the history
javascript.
  • Loading branch information
ikawhero committed Jan 5, 2007
1 parent 84d04c3 commit 68e9d36
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 27 deletions.
23 changes: 1 addition & 22 deletions user/edit.php
Expand Up @@ -76,7 +76,7 @@
}


$userform = new user_edit_form('edit.php', compact('user','course'));
$userform = new user_edit_form('edit.php', compact('user','course','authplugin'));
$userform->set_upload_manager(new upload_manager('imagefile',false,false,null,false,0,true,true));

/// If data submitted, then process and store.
Expand Down Expand Up @@ -339,27 +339,6 @@

$userform->display();

if (!has_capability('moodle/user:update', get_context_instance(CONTEXT_SYSTEM, SITEID))) { /// Lock all the locked fields using Javascript
$fields = get_user_fieldnames();

echo '<script type="text/javascript">'."\n";
echo '<!--'."\n";

foreach ($fields as $field) {
$configvariable = 'field_lock_' . $field;
if (isset($authplugin->config->{$configvariable})) {
if ( $authplugin->config->{$configvariable} === 'locked'
or ($authplugin->config->{$configvariable} === 'unlockedifempty' and !empty($user->$field))) {
echo "eval('getElementById('editform').$field.disabled=true');\n";
}
}
}

echo '-->'."\n";
echo '</script>'."\n";
}


if (!isset($USER->newadminuser)) {
print_footer($course);
} else {
Expand Down
23 changes: 18 additions & 5 deletions user/edit_form.php
Expand Up @@ -9,10 +9,11 @@ class user_edit_form extends moodleform {
function definition () {
global $USER, $CFG;

$mform =& $this->_form;
$renderer =& $mform->defaultRenderer();
$user = $this->_customdata['user'];
$course = $this->_customdata['course'];
$mform =& $this->_form;
$renderer =& $mform->defaultRenderer();
$user = $this->_customdata['user'];
$course = $this->_customdata['course'];
$authplugin = $this->_customdata['authplugin'];

$systemcontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
$userupdate = has_capability('moodle/user:update', $systemcontext);
Expand Down Expand Up @@ -290,6 +291,19 @@ function definition () {
/// override the defaults with the user settings
$this->set_defaults($user);


/// disable fields that are locked by auth plugins
if ($userupdate) {
$fields = get_user_fieldnames();

foreach ($fields as $field) {
$configvariable = 'field_lock_' . $field;
if (isset($authplugin->config->{$configvariable})) {
$mform->disabledIf($field, ( $authplugin->config->{$configvariable} === 'locked' or ($authplugin->config->{$configvariable} === 'unlockedifempty' and !empty($user->$field))), true);
}
}
}


/// Next the customisable categories
if ($categories = get_records_select('user_info_category', '1', 'sortorder ASC')) {
Expand All @@ -310,7 +324,6 @@ function definition () {
} /// End of $categories foreach
} /// End of $categories if


$this->add_action_buttons(false, get_string('updatemyprofile'));

} /// End of function
Expand Down

0 comments on commit 68e9d36

Please sign in to comment.