EditRole.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\User\Controller\Adminhtml\User\Role;
  8. /**
  9. * Class EditRole
  10. */
  11. class EditRole extends \Magento\User\Controller\Adminhtml\User\Role
  12. {
  13. /**
  14. * Edit role action
  15. *
  16. * @return void
  17. */
  18. public function execute()
  19. {
  20. $this->restoreResourcesDataFromSession();
  21. $this->restoreUsersDataFromSession();
  22. $role = $this->_initRole();
  23. $this->restoreFormDataFromSession($role);
  24. $this->_initAction();
  25. if ($role->getId()) {
  26. $breadCrumb = __('Edit Role');
  27. $breadCrumbTitle = __('Edit Role');
  28. } else {
  29. $breadCrumb = __('Add New Role');
  30. $breadCrumbTitle = __('Add New Role');
  31. }
  32. $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Roles'));
  33. $this->_view->getPage()->getConfig()->getTitle()->prepend(
  34. $role->getId() ? $role->getRoleName() : __('New Role')
  35. );
  36. $this->_addBreadcrumb($breadCrumb, $breadCrumbTitle);
  37. $this->_view->getLayout()->getBlock(
  38. 'adminhtml.user.role.buttons'
  39. )->setRoleId(
  40. $role->getId()
  41. )->setRoleInfo(
  42. $role
  43. );
  44. $this->_view->renderLayout();
  45. }
  46. /**
  47. * Restore Users Form Data from Session and save one in Registry
  48. *
  49. * @return void
  50. */
  51. protected function restoreUsersDataFromSession()
  52. {
  53. $this->_coreRegistry->register(
  54. SaveRole::IN_ROLE_USER_FORM_DATA_SESSION_KEY,
  55. $this->_session->getData(SaveRole::IN_ROLE_USER_FORM_DATA_SESSION_KEY, true)
  56. );
  57. $this->_coreRegistry->register(
  58. SaveRole::IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY,
  59. $this->_session->getData(SaveRole::IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY, true)
  60. );
  61. }
  62. /**
  63. * Restore Resources Form Data from Session and save one in Registry
  64. *
  65. * @return void
  66. */
  67. protected function restoreResourcesDataFromSession()
  68. {
  69. $this->_coreRegistry->register(
  70. SaveRole::RESOURCE_ALL_FORM_DATA_SESSION_KEY,
  71. $this->_session->getData(SaveRole::RESOURCE_ALL_FORM_DATA_SESSION_KEY, true)
  72. );
  73. $this->_coreRegistry->register(
  74. SaveRole::RESOURCE_FORM_DATA_SESSION_KEY,
  75. $this->_session->getData(SaveRole::RESOURCE_FORM_DATA_SESSION_KEY, true)
  76. );
  77. }
  78. /**
  79. * Restore general information Form Data from Session and save one in Registry
  80. *
  81. * @param \Magento\Authorization\Model\Role $role
  82. * @return $this
  83. */
  84. protected function restoreFormDataFromSession(\Magento\Authorization\Model\Role $role)
  85. {
  86. $data = $this->_getSession()->getData(SaveRole::ROLE_EDIT_FORM_DATA_SESSION_KEY, true);
  87. if (!empty($data['rolename'])) {
  88. $role->setRoleName($data['rolename']);
  89. }
  90. return $this;
  91. }
  92. }