From: ikawhero Date: Fri, 5 Jan 2007 06:57:30 +0000 (+0000) Subject: Fields set as locked are now disabled using the forms class rather than X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=68e9d3680216ebc2bd68200ef418b043ff9abbba;p=moodle.git Fields set as locked are now disabled using the forms class rather than javascript. --- diff --git a/user/edit.php b/user/edit.php index 49ed2c0209..87fe800fd9 100644 --- a/user/edit.php +++ b/user/edit.php @@ -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. @@ -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 ''."\n"; - } - - if (!isset($USER->newadminuser)) { print_footer($course); } else { diff --git a/user/edit_form.php b/user/edit_form.php index e17963597f..fd158dae45 100644 --- a/user/edit_form.php +++ b/user/edit_form.php @@ -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); @@ -290,6 +291,19 @@ class user_edit_form extends moodleform { /// 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')) { @@ -310,7 +324,6 @@ class user_edit_form extends moodleform { } /// End of $categories foreach } /// End of $categories if - $this->add_action_buttons(false, get_string('updatemyprofile')); } /// End of function