PageRenderTime 41ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/moodle/login/change_password_form.php

https://bitbucket.org/geek745/moodle-db2
PHP | 79 lines | 54 code | 20 blank | 5 comment | 7 complexity | f7978a7d8d8d139499da495d2950f77f MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, BSD-3-Clause, LGPL-2.0
  1. <?php //$Id: change_password_form.php,v 1.11.2.2 2009/09/28 16:16:24 skodak Exp $
  2. require_once $CFG->libdir.'/formslib.php';
  3. class login_change_password_form extends moodleform {
  4. function definition() {
  5. global $USER;
  6. $mform =& $this->_form;
  7. $mform->addElement('header', '', get_string('changepassword'), '');
  8. // visible elements
  9. $mform->addElement('static', 'username', get_string('username'), $USER->username);
  10. $mform->addElement('password', 'password', get_string('oldpassword'));
  11. $mform->addRule('password', get_string('required'), 'required', null, 'client');
  12. $mform->setType('password', PARAM_RAW);
  13. $mform->addElement('password', 'newpassword1', get_string('newpassword'));
  14. $mform->addRule('newpassword1', get_string('required'), 'required', null, 'client');
  15. $mform->setType('newpassword1', PARAM_RAW);
  16. $mform->addElement('password', 'newpassword2', get_string('newpassword').' ('.get_String('again').')');
  17. $mform->addRule('newpassword2', get_string('required'), 'required', null, 'client');
  18. $mform->setType('newpassword2', PARAM_RAW);
  19. // hidden optional params
  20. $mform->addElement('hidden', 'id', 0);
  21. $mform->setType('id', PARAM_INT);
  22. // buttons
  23. if (get_user_preferences('auth_forcepasswordchange')) {
  24. $this->add_action_buttons(false);
  25. } else {
  26. $this->add_action_buttons(true);
  27. }
  28. }
  29. /// perform extra password change validation
  30. function validation($data, $files) {
  31. global $USER;
  32. $errors = parent::validation($data, $files);
  33. update_login_count();
  34. // ignore submitted username
  35. if (!$user = authenticate_user_login(addslashes($USER->username), $data['password'])) {
  36. $errors['password'] = get_string('invalidlogin');
  37. return $errors;
  38. }
  39. reset_login_count();
  40. if ($data['newpassword1'] <> $data['newpassword2']) {
  41. $errors['newpassword1'] = get_string('passwordsdiffer');
  42. $errors['newpassword2'] = get_string('passwordsdiffer');
  43. return $errors;
  44. }
  45. if ($data['password'] == $data['newpassword1']){
  46. $errors['newpassword1'] = get_string('mustchangepassword');
  47. $errors['newpassword2'] = get_string('mustchangepassword');
  48. return $errors;
  49. }
  50. $errmsg = '';//prevents eclipse warnings
  51. if (!check_password_policy($data['newpassword1'], $errmsg)) {
  52. $errors['newpassword1'] = $errmsg;
  53. $errors['newpassword2'] = $errmsg;
  54. return $errors;
  55. }
  56. return $errors;
  57. }
  58. }
  59. ?>