EditRole.php 2.94 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
<?php
/**
 *
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\User\Controller\Adminhtml\User\Role;

/**
 * Class EditRole
 */
class EditRole extends \Magento\User\Controller\Adminhtml\User\Role
{
    /**
     * Edit role action
     *
     * @return void
     */
    public function execute()
    {
        $this->restoreResourcesDataFromSession();
        $this->restoreUsersDataFromSession();

        $role = $this->_initRole();
        $this->restoreFormDataFromSession($role);

        $this->_initAction();

        if ($role->getId()) {
            $breadCrumb = __('Edit Role');
            $breadCrumbTitle = __('Edit Role');
        } else {
            $breadCrumb = __('Add New Role');
            $breadCrumbTitle = __('Add New Role');
        }

        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Roles'));
        $this->_view->getPage()->getConfig()->getTitle()->prepend(
            $role->getId() ? $role->getRoleName() : __('New Role')
        );

        $this->_addBreadcrumb($breadCrumb, $breadCrumbTitle);

        $this->_view->getLayout()->getBlock(
            'adminhtml.user.role.buttons'
        )->setRoleId(
            $role->getId()
        )->setRoleInfo(
            $role
        );

        $this->_view->renderLayout();
    }

    /**
     * Restore Users Form Data from Session and save one in Registry
     *
     * @return void
     */
    protected function restoreUsersDataFromSession()
    {
        $this->_coreRegistry->register(
            SaveRole::IN_ROLE_USER_FORM_DATA_SESSION_KEY,
            $this->_session->getData(SaveRole::IN_ROLE_USER_FORM_DATA_SESSION_KEY, true)
        );
        $this->_coreRegistry->register(
            SaveRole::IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY,
            $this->_session->getData(SaveRole::IN_ROLE_OLD_USER_FORM_DATA_SESSION_KEY, true)
        );
    }

    /**
     * Restore Resources Form Data from Session and save one in Registry
     *
     * @return void
     */
    protected function restoreResourcesDataFromSession()
    {
        $this->_coreRegistry->register(
            SaveRole::RESOURCE_ALL_FORM_DATA_SESSION_KEY,
            $this->_session->getData(SaveRole::RESOURCE_ALL_FORM_DATA_SESSION_KEY, true)
        );
        $this->_coreRegistry->register(
            SaveRole::RESOURCE_FORM_DATA_SESSION_KEY,
            $this->_session->getData(SaveRole::RESOURCE_FORM_DATA_SESSION_KEY, true)
        );
    }

    /**
     * Restore general information Form Data from Session and save one in Registry
     *
     * @param \Magento\Authorization\Model\Role $role
     * @return $this
     */
    protected function restoreFormDataFromSession(\Magento\Authorization\Model\Role $role)
    {
        $data = $this->_getSession()->getData(SaveRole::ROLE_EDIT_FORM_DATA_SESSION_KEY, true);
        if (!empty($data['rolename'])) {
            $role->setRoleName($data['rolename']);
        }

        return $this;
    }
}