EditUser.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. require_once( __DIR__ . '/../validate/NotDemoValidate.php');
  3. class Application_Form_EditUser extends Zend_Form
  4. {
  5. public function init()
  6. {
  7. /*
  8. $this->addElementPrefixPath('Application_Validate',
  9. '../application/validate',
  10. 'validate');
  11. * */
  12. $currentUser = Application_Model_User::getCurrentUser();
  13. $currentUserId = $currentUser->getId();
  14. $userData = Application_Model_User::GetUserData($currentUserId);
  15. $notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
  16. $emailValidator = Application_Form_Helper_ValidationTypes::overrideEmailAddressValidator();
  17. $notDemoValidator = new Application_Validate_NotDemoValidate();
  18. $this->setDecorators(array(
  19. array('ViewScript', array('viewScript' => 'form/edit-user.phtml', "currentUser" => $currentUser->getLogin()))));
  20. $this->setAttrib('id', 'current-user-form');
  21. $this->addElement('hash', 'csrf', array(
  22. 'salt' => 'unique'
  23. ));
  24. $hidden = new Zend_Form_Element_Hidden('cu_user_id');
  25. $hidden->setDecorators(array('ViewHelper'));
  26. $hidden->setValue($userData["id"]);
  27. $this->addElement($hidden);
  28. $login = new Zend_Form_Element_Text('cu_login');
  29. $login->setLabel(_('Username:'));
  30. $login->setValue($userData["login"]);
  31. $login->setAttrib('class', 'input_text');
  32. $login->setAttrib('readonly', 'readonly');
  33. $login->setRequired(true);
  34. $login->addValidator($notEmptyValidator);
  35. $login->addFilter('StringTrim');
  36. $login->setDecorators(array('viewHelper'));
  37. $this->addElement($login);
  38. $password = new Zend_Form_Element_Password('cu_password');
  39. $password->setLabel(_('Password:'));
  40. $password->setAttrib('class', 'input_text');
  41. $password->setRequired(true);
  42. $password->addFilter('StringTrim');
  43. $password->addValidator($notEmptyValidator);
  44. $password->setDecorators(array('viewHelper'));
  45. $this->addElement($password);
  46. $passwordVerify = new Zend_Form_Element_Password('cu_passwordVerify');
  47. $passwordVerify->setLabel(_('Verify Password:'));
  48. $passwordVerify->setAttrib('class', 'input_text');
  49. $passwordVerify->setRequired(true);
  50. $passwordVerify->addFilter('StringTrim');
  51. $passwordVerify->addValidator($notEmptyValidator);
  52. $passwordVerify->addValidator($notDemoValidator);
  53. $passwordVerify->setDecorators(array('viewHelper'));
  54. $this->addElement($passwordVerify);
  55. $firstName = new Zend_Form_Element_Text('cu_first_name');
  56. $firstName->setLabel(_('Firstname:'));
  57. $firstName->setValue($userData["first_name"]);
  58. $firstName->setAttrib('class', 'input_text');
  59. $firstName->addFilter('StringTrim');
  60. $firstName->setDecorators(array('viewHelper'));
  61. $this->addElement($firstName);
  62. $lastName = new Zend_Form_Element_Text('cu_last_name');
  63. $lastName->setLabel(_('Lastname:'));
  64. $lastName->setValue($userData["last_name"]);
  65. $lastName->setAttrib('class', 'input_text');
  66. $lastName->addFilter('StringTrim');
  67. $lastName->setDecorators(array('viewHelper'));
  68. $this->addElement($lastName);
  69. $email = new Zend_Form_Element_Text('cu_email');
  70. $email->setLabel(_('Email:'));
  71. $email->setValue($userData["email"]);
  72. $email->setAttrib('class', 'input_text');
  73. $email->addFilter('StringTrim');
  74. $email->setRequired(true);
  75. $email->addValidator($notEmptyValidator);
  76. $email->addValidator($emailValidator);
  77. $email->setDecorators(array('viewHelper'));
  78. $this->addElement($email);
  79. $cellPhone = new Zend_Form_Element_Text('cu_cell_phone');
  80. $cellPhone->setLabel(_('Mobile Phone:'));
  81. $cellPhone->setValue($userData["cell_phone"]);
  82. $cellPhone->setAttrib('class', 'input_text');
  83. $cellPhone->addFilter('StringTrim');
  84. $cellPhone->setDecorators(array('viewHelper'));
  85. $this->addElement($cellPhone);
  86. $skype = new Zend_Form_Element_Text('cu_skype');
  87. $skype->setLabel(_('Skype:'));
  88. $skype->setValue($userData["skype_contact"]);
  89. $skype->setAttrib('class', 'input_text');
  90. $skype->addFilter('StringTrim');
  91. $skype->setDecorators(array('viewHelper'));
  92. $this->addElement($skype);
  93. $jabber = new Zend_Form_Element_Text('cu_jabber');
  94. $jabber->setLabel(_('Jabber:'));
  95. $jabber->setValue($userData["jabber_contact"]);
  96. $jabber->setAttrib('class', 'input_text');
  97. $jabber->addFilter('StringTrim');
  98. $jabber->addValidator($emailValidator);
  99. $jabber->setDecorators(array('viewHelper'));
  100. $this->addElement($jabber);
  101. $locale = new Zend_Form_Element_Select("cu_locale");
  102. $locale->setLabel(_("Language:"));
  103. $locale->setMultiOptions(Application_Model_Locale::getLocales());
  104. $locale->setValue(Application_Model_Preference::GetUserLocale($currentUserId));
  105. $locale->setDecorators(array('ViewHelper'));
  106. $this->addElement($locale);
  107. $timezone = new Zend_Form_Element_Select("cu_timezone");
  108. $timezone->setLabel(_("Interface Timezone:"));
  109. $timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
  110. $timezone->setValue(Application_Model_Preference::GetUserTimezone($currentUserId));
  111. $timezone->setDecorators(array('ViewHelper'));
  112. $this->addElement($timezone);
  113. }
  114. public function validateLogin($p_login, $p_userId) {
  115. $count = CcSubjsQuery::create()
  116. ->filterByDbLogin($p_login)
  117. ->filterByDbId($p_userId, Criteria::NOT_EQUAL)
  118. ->count();
  119. if ($count != 0) {
  120. $this->getElement('cu_login')->setErrors(array(_("Login name is not unique.")));
  121. return false;
  122. } else {
  123. return true;
  124. }
  125. }
  126. // We need to add the password identical validator here in case
  127. // Zend version is less than 1.10.5
  128. public function isValid($data) {
  129. $passwordIdenticalValidator = Application_Form_Helper_ValidationTypes::overridePasswordIdenticalValidator(
  130. $data['cu_password']);
  131. $this->getElement('cu_passwordVerify')->addValidator($passwordIdenticalValidator);
  132. return parent::isValid($data);
  133. }
  134. }