Ejemplo n.º 1
0
 function definition()
 {
     global $USER, $CFG;
     $mform = $this->_form;
     $mform->setDisableShortforms(true);
     $mform->addElement('header', 'changepassword', get_string('changepassword'), '');
     // visible elements
     $mform->addElement('static', 'username', get_string('username'), $USER->username);
     $policies = array();
     if (!empty($CFG->passwordpolicy)) {
         $policies[] = print_password_policy();
     }
     if (!empty($CFG->passwordreuselimit) and $CFG->passwordreuselimit > 0) {
         $policies[] = get_string('informminpasswordreuselimit', 'auth', $CFG->passwordreuselimit);
     }
     if ($policies) {
         $mform->addElement('static', 'passwordpolicyinfo', '', implode('<br />', $policies));
     }
     $mform->addElement('password', 'password', get_string('oldpassword'));
     $mform->addRule('password', get_string('required'), 'required', null, 'client');
     $mform->setType('password', PARAM_RAW);
     $mform->addElement('password', 'newpassword1', get_string('newpassword'));
     $mform->addRule('newpassword1', get_string('required'), 'required', null, 'client');
     $mform->setType('newpassword1', PARAM_RAW);
     $mform->addElement('password', 'newpassword2', get_string('newpassword') . ' (' . get_String('again') . ')');
     $mform->addRule('newpassword2', get_string('required'), 'required', null, 'client');
     $mform->setType('newpassword2', PARAM_RAW);
     if (empty($CFG->passwordchangetokendeletion) and !empty(webservice::get_active_tokens($USER->id))) {
         $mform->addElement('advcheckbox', 'signoutofotherservices', get_string('signoutofotherservices'));
         $mform->addHelpButton('signoutofotherservices', 'signoutofotherservices');
         $mform->setDefault('signoutofotherservices', 1);
     }
     // hidden optional params
     $mform->addElement('hidden', 'id', 0);
     $mform->setType('id', PARAM_INT);
     // buttons
     if (get_user_preferences('auth_forcepasswordchange')) {
         $this->add_action_buttons(false);
     } else {
         $this->add_action_buttons(true);
     }
 }
Ejemplo n.º 2
0
 /**
  * Define the form.
  */
 public function definition()
 {
     global $USER, $CFG, $COURSE;
     $mform = $this->_form;
     $editoroptions = null;
     $filemanageroptions = null;
     if (!is_array($this->_customdata)) {
         throw new coding_exception('invalid custom data for user_edit_form');
     }
     $editoroptions = $this->_customdata['editoroptions'];
     $filemanageroptions = $this->_customdata['filemanageroptions'];
     $user = $this->_customdata['user'];
     $userid = $user->id;
     // Accessibility: "Required" is bad legend text.
     $strgeneral = get_string('general');
     $strrequired = get_string('required');
     // Add some extra hidden fields.
     $mform->addElement('hidden', 'id');
     $mform->setType('id', core_user::get_property_type('id'));
     $mform->addElement('hidden', 'course', $COURSE->id);
     $mform->setType('course', PARAM_INT);
     // Print the required moodle fields first.
     $mform->addElement('header', 'moodle', $strgeneral);
     $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()) {
                 // This is unlikely but we can not create account without password
                 // when plugin uses passwords, we need to set it initially at least.
             } else {
                 $cannotchangepass[] = $auth;
             }
         }
         if (is_enabled_auth($auth)) {
             $authoptions[$enabled][$auth] = get_string('pluginname', "auth_{$auth}");
         } else {
             $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);
     if ($userid !== -1) {
         $mform->disabledIf('username', 'auth', 'in', $cannotchangeusername);
     }
     $mform->addElement('selectgroups', 'auth', get_string('chooseauthmethod', 'auth'), $authoptions);
     $mform->addHelpButton('auth', 'chooseauthmethod', 'auth');
     $mform->addElement('advcheckbox', 'suspended', get_string('suspended', 'auth'));
     $mform->addHelpButton('suspended', 'suspended', 'auth');
     $mform->addElement('checkbox', 'createpassword', get_string('createpassword', 'auth'));
     $mform->disabledIf('createpassword', 'auth', 'in', $cannotchangepass);
     if (!empty($CFG->passwordpolicy)) {
         $mform->addElement('static', 'passwordpolicyinfo', '', print_password_policy());
     }
     $mform->addElement('passwordunmask', 'newpassword', get_string('newpassword'), 'size="20"');
     $mform->addHelpButton('newpassword', 'newpassword');
     $mform->setType('newpassword', core_user::get_property_type('password'));
     $mform->disabledIf('newpassword', 'createpassword', 'checked');
     $mform->disabledIf('newpassword', 'auth', 'in', $cannotchangepass);
     // Check if the user has active external tokens.
     if ($userid and empty($CFG->passwordchangetokendeletion)) {
         if ($tokens = webservice::get_active_tokens($userid)) {
             $services = '';
             foreach ($tokens as $token) {
                 $services .= format_string($token->servicename) . ',';
             }
             $services = get_string('userservices', 'webservice', rtrim($services, ','));
             $mform->addElement('advcheckbox', 'signoutofotherservices', get_string('signoutofotherservices'), $services);
             $mform->addHelpButton('signoutofotherservices', 'signoutofotherservices');
             $mform->disabledIf('signoutofotherservices', 'newpassword', 'eq', '');
             $mform->setDefault('signoutofotherservices', 1);
         }
     }
     $mform->addElement('advcheckbox', 'preference_auth_forcepasswordchange', get_string('forcepasswordchange'));
     $mform->addHelpButton('preference_auth_forcepasswordchange', 'forcepasswordchange');
     $mform->disabledIf('preference_auth_forcepasswordchange', 'createpassword', 'checked');
     // Shared fields.
     useredit_shared_definition($mform, $editoroptions, $filemanageroptions, $user);
     // Next the customisable profile fields.
     profile_definition($mform, $userid);
     if ($userid == -1) {
         $btnstring = get_string('createuser');
     } else {
         $btnstring = get_string('updatemyprofile');
     }
     $this->add_action_buttons(false, $btnstring);
     $this->set_data($user);
 }