Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Main.php
Go to the documentation of this file.
1 <?php
8 
11 
17 class Main extends \Magento\Backend\Block\Widget\Form\Generic
18 {
19  const CURRENT_USER_PASSWORD_FIELD = 'current_password';
20 
24  protected $_authSession;
25 
29  protected $_LocaleLists;
30 
36  private $deployedLocales;
37 
47  public function __construct(
48  \Magento\Backend\Block\Template\Context $context,
49  \Magento\Framework\Registry $registry,
50  \Magento\Framework\Data\FormFactory $formFactory,
51  \Magento\Backend\Model\Auth\Session $authSession,
52  \Magento\Framework\Locale\ListsInterface $localeLists,
53  array $data = [],
54  OptionInterface $deployedLocales = null
55  ) {
56  $this->_authSession = $authSession;
57  $this->_LocaleLists = $localeLists;
58  $this->deployedLocales = $deployedLocales
59  ?: ObjectManager::getInstance()->get(OptionInterface::class);
60  parent::__construct($context, $registry, $formFactory, $data);
61  }
62 
69  protected function _prepareForm()
70  {
72  $model = $this->_coreRegistry->registry('permissions_user');
73 
75  $form = $this->_formFactory->create();
76  $form->setHtmlIdPrefix('user_');
77 
78  $baseFieldset = $form->addFieldset('base_fieldset', ['legend' => __('Account Information')]);
79 
80  if ($model->getUserId()) {
81  $baseFieldset->addField('user_id', 'hidden', ['name' => 'user_id']);
82  } else {
83  if (!$model->hasData('is_active')) {
84  $model->setIsActive(1);
85  }
86  }
87 
88  $baseFieldset->addField(
89  'username',
90  'text',
91  [
92  'name' => 'username',
93  'label' => __('User Name'),
94  'id' => 'username',
95  'title' => __('User Name'),
96  'required' => true
97  ]
98  );
99 
100  $baseFieldset->addField(
101  'firstname',
102  'text',
103  [
104  'name' => 'firstname',
105  'label' => __('First Name'),
106  'id' => 'firstname',
107  'title' => __('First Name'),
108  'required' => true
109  ]
110  );
111 
112  $baseFieldset->addField(
113  'lastname',
114  'text',
115  [
116  'name' => 'lastname',
117  'label' => __('Last Name'),
118  'id' => 'lastname',
119  'title' => __('Last Name'),
120  'required' => true
121  ]
122  );
123 
124  $baseFieldset->addField(
125  'email',
126  'text',
127  [
128  'name' => 'email',
129  'label' => __('Email'),
130  'id' => 'customer_email',
131  'title' => __('User Email'),
132  'class' => 'required-entry validate-email',
133  'required' => true
134  ]
135  );
136 
137  $isNewObject = $model->isObjectNew();
138  if ($isNewObject) {
139  $passwordLabel = __('Password');
140  } else {
141  $passwordLabel = __('New Password');
142  }
143  $confirmationLabel = __('Password Confirmation');
144  $this->_addPasswordFields($baseFieldset, $passwordLabel, $confirmationLabel, $isNewObject);
145 
146  $baseFieldset->addField(
147  'interface_locale',
148  'select',
149  [
150  'name' => 'interface_locale',
151  'label' => __('Interface Locale'),
152  'title' => __('Interface Locale'),
153  'values' => $this->deployedLocales->getOptionLocales(),
154  'class' => 'select'
155  ]
156  );
157 
158  if ($this->_authSession->getUser()->getId() != $model->getUserId()) {
159  $baseFieldset->addField(
160  'is_active',
161  'select',
162  [
163  'name' => 'is_active',
164  'label' => __('This account is'),
165  'id' => 'is_active',
166  'title' => __('Account Status'),
167  'class' => 'input-select',
168  'options' => ['1' => __('Active'), '0' => __('Inactive')]
169  ]
170  );
171  }
172 
173  $baseFieldset->addField('user_roles', 'hidden', ['name' => 'user_roles', 'id' => '_user_roles']);
174 
175  $currentUserVerificationFieldset = $form->addFieldset(
176  'current_user_verification_fieldset',
177  ['legend' => __('Current User Identity Verification')]
178  );
179  $currentUserVerificationFieldset->addField(
180  self::CURRENT_USER_PASSWORD_FIELD,
181  'password',
182  [
183  'name' => self::CURRENT_USER_PASSWORD_FIELD,
184  'label' => __('Your Password'),
185  'id' => self::CURRENT_USER_PASSWORD_FIELD,
186  'title' => __('Your Password'),
187  'class' => 'input-text validate-current-password required-entry',
188  'required' => true
189  ]
190  );
191 
192  $data = $model->getData();
193  unset($data['password']);
194  unset($data[self::CURRENT_USER_PASSWORD_FIELD]);
195  $form->setValues($data);
196 
197  $this->setForm($form);
198 
199  return parent::_prepareForm();
200  }
201 
211  protected function _addPasswordFields(
212  \Magento\Framework\Data\Form\Element\Fieldset $fieldset,
213  $passwordLabel,
214  $confirmationLabel,
215  $isRequired = false
216  ) {
217  $requiredFieldClass = $isRequired ? ' required-entry' : '';
218  $fieldset->addField(
219  'password',
220  'password',
221  [
222  'name' => 'password',
223  'label' => $passwordLabel,
224  'id' => 'customer_pass',
225  'title' => $passwordLabel,
226  'class' => 'input-text validate-admin-password' . $requiredFieldClass,
227  'required' => $isRequired
228  ]
229  );
230  $fieldset->addField(
231  'confirmation',
232  'password',
233  [
234  'name' => 'password_confirmation',
235  'label' => $confirmationLabel,
236  'id' => 'confirmation',
237  'title' => $confirmationLabel,
238  'class' => 'input-text validate-cpassword' . $requiredFieldClass,
239  'required' => $isRequired
240  ]
241  );
242  }
243 }
__construct(\Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Backend\Model\Auth\Session $authSession, \Magento\Framework\Locale\ListsInterface $localeLists, array $data=[], OptionInterface $deployedLocales=null)
Definition: Main.php:47
setForm(\Magento\Framework\Data\Form $form)
Definition: Form.php:112
__()
Definition: __.php:13
_addPasswordFields(\Magento\Framework\Data\Form\Element\Fieldset $fieldset, $passwordLabel, $confirmationLabel, $isRequired=false)
Definition: Main.php:211