50 private $securityCookie;
58 private function getSecurityCookie()
61 return \Magento\Framework\App\ObjectManager::getInstance()->get(SecurityCookie::class);
63 return $this->securityCookie;
75 $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
77 $rid = $this->
getRequest()->getParam(
'role_id',
false);
79 $roleUsers = $this->
getRequest()->getParam(
'in_role_user',
null);
80 parse_str($roleUsers, $roleUsers);
81 $roleUsers = array_keys($roleUsers);
85 $resource = [$this->_objectManager->get(\
Magento\Framework\Acl\RootResource::class)->getId()];
89 if (!$role->getId() && $rid) {
90 $this->messageManager->addError(
__(
'This role no longer exists.'));
91 return $resultRedirect->setPath(
'adminhtml/*/');
96 $roleName = $this->_filterManager->removeTags($this->
getRequest()->getParam(
'rolename',
false));
97 $role->setName($roleName)
98 ->setPid($this->
getRequest()->getParam(
'parent_id',
false))
99 ->setRoleType(RoleGroup::ROLE_TYPE)
100 ->setUserType(UserContextInterface::USER_TYPE_ADMIN);
101 $this->_eventManager->dispatch(
102 'admin_permissions_role_prepare_save',
103 [
'object' => $role,
'request' => $this->
getRequest()]
107 $this->_rulesFactory->create()->setRoleId($role->getId())->setResources(
$resource)->saveRel();
111 foreach ($roleUsers as $nRuid) {
114 $this->messageManager->addSuccess(
__(
'You saved the role.'));
115 }
catch (UserLockedException $e) {
116 $this->_auth->logout();
117 $this->getSecurityCookie()->setLogoutReasonCookie(
118 \
Magento\Security\Model\AdminSessionsManager::LOGOUT_REASON_USER_LOCKED
120 return $resultRedirect->setPath(
'*');
121 }
catch (\
Magento\Framework\Exception\AuthenticationException $e) {
122 $this->messageManager->addError(
123 __(
'The password entered for the current user is invalid. Verify the password and try again.')
126 }
catch (\
Magento\Framework\Exception\LocalizedException $e) {
127 $this->messageManager->addError($e->getMessage());
128 }
catch (\Exception $e) {
129 $this->messageManager->addError(
__(
'An error occurred while saving this role.'));
132 return $resultRedirect->setPath(
'*/*/');
145 \
Magento\
User\Block\
Role\Tab\Info::IDENTITY_VERIFICATION_PASSWORD_FIELD
147 $user = $this->_authSession->getUser();
148 $user->performIdentityCheck($password);
160 $oldRoleUsers = $this->
getRequest()->getParam(
'in_role_user_old');
161 parse_str($oldRoleUsers, $oldRoleUsers);
162 $oldRoleUsers = array_keys($oldRoleUsers);
164 foreach ($oldRoleUsers as $oUid) {
180 $user = $this->_userFactory->create()->load($userId);
183 if (
$user->roleUserExists() ===
true) {
202 $this->_userFactory->create()->setRoleId(
$roleId)->setUserId($userId)->deleteFromRole();
203 }
catch (\Exception $e) {
217 $this->
_getSession()->setData(self::ROLE_EDIT_FORM_DATA_SESSION_KEY, [
'rolename' =>
$data[
'rolename']]);
218 $this->
_getSession()->setData(self::IN_ROLE_USER_FORM_DATA_SESSION_KEY,
$data[
'in_role_user']);
219 $this->
_getSession()->setData(self::IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY,
$data[
'in_role_user_old']);
221 $this->
_getSession()->setData(self::RESOURCE_ALL_FORM_DATA_SESSION_KEY,
$data[
'all']);
226 $arguments = $role->getId() ? [
'rid' => $role->getId()] : [];
227 return $resultRedirect->setPath(
'*/*/editrole',
$arguments);
const RESOURCE_ALL_FORM_DATA_SESSION_KEY
const IN_ROLE_USER_FORM_DATA_SESSION_KEY
_deleteUserFromRole($userId, $roleId)
_initRole($requestVariable='rid')
saveDataToSessionAndRedirect($role, $data, $resultRedirect)
const IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY
processPreviousUsers(\Magento\Authorization\Model\Role $role)
const RESOURCE_FORM_DATA_SESSION_KEY
const ROLE_EDIT_FORM_DATA_SESSION_KEY
_addUserToRole($userId, $roleId)