Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Save.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Framework\Validator\Exception as ValidatorException;
14 
18 class Save extends \Magento\Backend\Controller\Adminhtml\System\Account
19 {
23  private $securityCookie;
24 
31  private function getSecurityCookie()
32  {
33  if (!($this->securityCookie instanceof SecurityCookie)) {
34  return \Magento\Framework\App\ObjectManager::getInstance()->get(SecurityCookie::class);
35  }
36  return $this->securityCookie;
37  }
38 
45  public function execute()
46  {
47  $userId = $this->_objectManager->get(\Magento\Backend\Model\Auth\Session::class)->getUser()->getId();
48  $password = (string)$this->getRequest()->getParam('password');
49  $passwordConfirmation = (string)$this->getRequest()->getParam('password_confirmation');
50  $interfaceLocale = (string)$this->getRequest()->getParam('interface_locale', false);
51 
53  $user = $this->_objectManager->create(\Magento\User\Model\User::class)->load($userId);
54 
55  $user->setId($userId)
56  ->setUserName($this->getRequest()->getParam('username', false))
57  ->setFirstName($this->getRequest()->getParam('firstname', false))
58  ->setLastName($this->getRequest()->getParam('lastname', false))
59  ->setEmail(strtolower($this->getRequest()->getParam('email', false)));
60 
61  if ($this->_objectManager->get(\Magento\Framework\Validator\Locale::class)->isValid($interfaceLocale)) {
62  $user->setInterfaceLocale($interfaceLocale);
64  $localeManager = $this->_objectManager->get(\Magento\Backend\Model\Locale\Manager::class);
65  $localeManager->switchBackendInterfaceLocale($interfaceLocale);
66  }
68  $currentUserPasswordField = \Magento\User\Block\User\Edit\Tab\Main::CURRENT_USER_PASSWORD_FIELD;
69  $currentUserPassword = $this->getRequest()->getParam($currentUserPasswordField);
70  try {
71  $user->performIdentityCheck($currentUserPassword);
72  if ($password !== '') {
73  $user->setPassword($password);
74  $user->setPasswordConfirmation($passwordConfirmation);
75  }
76  $errors = $user->validate();
77  if ($errors !== true && !empty($errors)) {
78  foreach ($errors as $error) {
79  $this->messageManager->addErrorMessage($error);
80  }
81  } else {
82  $user->save();
83  $user->sendNotificationEmailsIfRequired();
84  $this->messageManager->addSuccessMessage(__('You saved the account.'));
85  }
86  } catch (UserLockedException $e) {
87  $this->_auth->logout();
88  $this->getSecurityCookie()->setLogoutReasonCookie(
89  \Magento\Security\Model\AdminSessionsManager::LOGOUT_REASON_USER_LOCKED
90  );
91  } catch (ValidatorException $e) {
92  $this->messageManager->addMessages($e->getMessages());
93  if ($e->getMessage()) {
94  $this->messageManager->addErrorMessage($e->getMessage());
95  }
96  } catch (LocalizedException $e) {
97  $this->messageManager->addErrorMessage($e->getMessage());
98  } catch (\Exception $e) {
99  $this->messageManager->addErrorMessage(__('An error occurred while saving account.'));
100  }
101 
103  $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
104  return $resultRedirect->setPath("*/*/");
105  }
106 }
__()
Definition: __.php:13
$user
Definition: dummy_user.php:13
$errors
Definition: overview.phtml:9