18 class Save extends \Magento\Backend\Controller\Adminhtml\System\Account
23 private $securityCookie;
31 private function getSecurityCookie()
34 return \Magento\Framework\App\ObjectManager::getInstance()->get(SecurityCookie::class);
36 return $this->securityCookie;
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);
53 $user = $this->_objectManager->create(\
Magento\User\Model\User::class)->load($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)));
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);
68 $currentUserPasswordField = \Magento\User\Block\User\Edit\Tab\Main::CURRENT_USER_PASSWORD_FIELD;
69 $currentUserPassword = $this->
getRequest()->getParam($currentUserPasswordField);
71 $user->performIdentityCheck($currentUserPassword);
72 if ($password !==
'') {
73 $user->setPassword($password);
74 $user->setPasswordConfirmation($passwordConfirmation);
79 $this->messageManager->addErrorMessage($error);
83 $user->sendNotificationEmailsIfRequired();
84 $this->messageManager->addSuccessMessage(
__(
'You saved the account.'));
87 $this->_auth->logout();
88 $this->getSecurityCookie()->setLogoutReasonCookie(
89 \
Magento\Security\Model\AdminSessionsManager::LOGOUT_REASON_USER_LOCKED
91 }
catch (ValidatorException $e) {
92 $this->messageManager->addMessages($e->getMessages());
93 if ($e->getMessage()) {
94 $this->messageManager->addErrorMessage($e->getMessage());
97 $this->messageManager->addErrorMessage($e->getMessage());
98 }
catch (\Exception $e) {
99 $this->messageManager->addErrorMessage(
__(
'An error occurred while saving account.'));
104 return $resultRedirect->setPath(
"*/*/");