PageRenderTime 25ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/magento/module-user/Block/User/Edit/Tab/Main.php

https://gitlab.com/yousafsyed/easternglamor
PHP | 231 lines | 167 code | 23 blank | 41 comment | 7 complexity | 040a7f1336edc52278a946befd3bce9c MD5 | raw file
  1. <?php
  2. /**
  3. * Copyright © 2016 Magento. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. // @codingStandardsIgnoreFile
  7. namespace Magento\User\Block\User\Edit\Tab;
  8. /**
  9. * Cms page edit form main tab
  10. *
  11. * @SuppressWarnings(PHPMD.DepthOfInheritance)
  12. */
  13. class Main extends \Magento\Backend\Block\Widget\Form\Generic
  14. {
  15. const CURRENT_USER_PASSWORD_FIELD = 'current_password';
  16. /**
  17. * @var \Magento\Backend\Model\Auth\Session
  18. */
  19. protected $_authSession;
  20. /**
  21. * @var \Magento\Framework\Locale\ListsInterface
  22. */
  23. protected $_LocaleLists;
  24. /**
  25. * @param \Magento\Backend\Block\Template\Context $context
  26. * @param \Magento\Framework\Registry $registry
  27. * @param \Magento\Framework\Data\FormFactory $formFactory
  28. * @param \Magento\Backend\Model\Auth\Session $authSession
  29. * @param \Magento\Framework\Locale\ListsInterface $localeLists
  30. * @param array $data
  31. */
  32. public function __construct(
  33. \Magento\Backend\Block\Template\Context $context,
  34. \Magento\Framework\Registry $registry,
  35. \Magento\Framework\Data\FormFactory $formFactory,
  36. \Magento\Backend\Model\Auth\Session $authSession,
  37. \Magento\Framework\Locale\ListsInterface $localeLists,
  38. array $data = []
  39. ) {
  40. $this->_authSession = $authSession;
  41. $this->_LocaleLists = $localeLists;
  42. parent::__construct($context, $registry, $formFactory, $data);
  43. }
  44. /**
  45. * Prepare form fields
  46. *
  47. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  48. * @return \Magento\Backend\Block\Widget\Form
  49. */
  50. protected function _prepareForm()
  51. {
  52. /** @var $model \Magento\User\Model\User */
  53. $model = $this->_coreRegistry->registry('permissions_user');
  54. /** @var \Magento\Framework\Data\Form $form */
  55. $form = $this->_formFactory->create();
  56. $form->setHtmlIdPrefix('user_');
  57. $baseFieldset = $form->addFieldset('base_fieldset', ['legend' => __('Account Information')]);
  58. if ($model->getUserId()) {
  59. $baseFieldset->addField('user_id', 'hidden', ['name' => 'user_id']);
  60. } else {
  61. if (!$model->hasData('is_active')) {
  62. $model->setIsActive(1);
  63. }
  64. }
  65. $baseFieldset->addField(
  66. 'username',
  67. 'text',
  68. [
  69. 'name' => 'username',
  70. 'label' => __('User Name'),
  71. 'id' => 'username',
  72. 'title' => __('User Name'),
  73. 'required' => true
  74. ]
  75. );
  76. $baseFieldset->addField(
  77. 'firstname',
  78. 'text',
  79. [
  80. 'name' => 'firstname',
  81. 'label' => __('First Name'),
  82. 'id' => 'firstname',
  83. 'title' => __('First Name'),
  84. 'required' => true
  85. ]
  86. );
  87. $baseFieldset->addField(
  88. 'lastname',
  89. 'text',
  90. [
  91. 'name' => 'lastname',
  92. 'label' => __('Last Name'),
  93. 'id' => 'lastname',
  94. 'title' => __('Last Name'),
  95. 'required' => true
  96. ]
  97. );
  98. $baseFieldset->addField(
  99. 'email',
  100. 'text',
  101. [
  102. 'name' => 'email',
  103. 'label' => __('Email'),
  104. 'id' => 'customer_email',
  105. 'title' => __('User Email'),
  106. 'class' => 'required-entry validate-email',
  107. 'required' => true
  108. ]
  109. );
  110. $isNewObject = $model->isObjectNew();
  111. if ($isNewObject) {
  112. $passwordLabel = __('Password');
  113. } else {
  114. $passwordLabel = __('New Password');
  115. }
  116. $confirmationLabel = __('Password Confirmation');
  117. $this->_addPasswordFields($baseFieldset, $passwordLabel, $confirmationLabel, $isNewObject);
  118. $baseFieldset->addField(
  119. 'interface_locale',
  120. 'select',
  121. [
  122. 'name' => 'interface_locale',
  123. 'label' => __('Interface Locale'),
  124. 'title' => __('Interface Locale'),
  125. 'values' => $this->_LocaleLists->getTranslatedOptionLocales(),
  126. 'class' => 'select'
  127. ]
  128. );
  129. if ($this->_authSession->getUser()->getId() != $model->getUserId()) {
  130. $baseFieldset->addField(
  131. 'is_active',
  132. 'select',
  133. [
  134. 'name' => 'is_active',
  135. 'label' => __('This account is'),
  136. 'id' => 'is_active',
  137. 'title' => __('Account Status'),
  138. 'class' => 'input-select',
  139. 'options' => ['1' => __('Active'), '0' => __('Inactive')]
  140. ]
  141. );
  142. }
  143. $baseFieldset->addField('user_roles', 'hidden', ['name' => 'user_roles', 'id' => '_user_roles']);
  144. $currentUserVerificationFieldset = $form->addFieldset(
  145. 'current_user_verification_fieldset',
  146. ['legend' => __('Current User Identity Verification')]
  147. );
  148. $currentUserVerificationFieldset->addField(
  149. self::CURRENT_USER_PASSWORD_FIELD,
  150. 'password',
  151. [
  152. 'name' => self::CURRENT_USER_PASSWORD_FIELD,
  153. 'label' => __('Your Password'),
  154. 'id' => self::CURRENT_USER_PASSWORD_FIELD,
  155. 'title' => __('Your Password'),
  156. 'class' => 'input-text validate-current-password required-entry',
  157. 'required' => true
  158. ]
  159. );
  160. $data = $model->getData();
  161. unset($data['password']);
  162. unset($data[self::CURRENT_USER_PASSWORD_FIELD]);
  163. $form->setValues($data);
  164. $this->setForm($form);
  165. return parent::_prepareForm();
  166. }
  167. /**
  168. * Add password input fields
  169. *
  170. * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset
  171. * @param string $passwordLabel
  172. * @param string $confirmationLabel
  173. * @param bool $isRequired
  174. * @return void
  175. */
  176. protected function _addPasswordFields(
  177. \Magento\Framework\Data\Form\Element\Fieldset $fieldset,
  178. $passwordLabel,
  179. $confirmationLabel,
  180. $isRequired = false
  181. ) {
  182. $requiredFieldClass = $isRequired ? ' required-entry' : '';
  183. $fieldset->addField(
  184. 'password',
  185. 'password',
  186. [
  187. 'name' => 'password',
  188. 'label' => $passwordLabel,
  189. 'id' => 'customer_pass',
  190. 'title' => $passwordLabel,
  191. 'class' => 'input-text validate-admin-password' . $requiredFieldClass,
  192. 'required' => $isRequired
  193. ]
  194. );
  195. $fieldset->addField(
  196. 'confirmation',
  197. 'password',
  198. [
  199. 'name' => 'password_confirmation',
  200. 'label' => $confirmationLabel,
  201. 'id' => 'confirmation',
  202. 'title' => $confirmationLabel,
  203. 'class' => 'input-text validate-cpassword' . $requiredFieldClass,
  204. 'required' => $isRequired
  205. ]
  206. );
  207. }
  208. }