Перенаправление пользователя-администратора в конфигурацию системы в пользовательском модуле


Я не знаю, возможно это или нет.

Я хочу перенаправить пользователя в конфигурацию системы, когда пользователь вошел в систему с правами администратора.

Возможно ли это?

Author: Teja Bhagavan Kollepara, 2017-07-27

1 answers

Думаю, что-то подобное уже задавалось здесь: как настроить стартовую страницу в бэкэнде magento для пользователя с другой ролью в magento.

Вам просто нужно изменить метод adminRedirect(), чтобы он соответствовал вашим потребностям, например, настроить getUrl('adminhtml/sales_order') на getUrl('adminhtml/system_config/edit/section/yor_tab'). Поскольку у вас нет проверки роли пользователя, этого должно быть достаточно для Observer.php:

$response = Mage::app()->getResponse();
$response->clearHeaders()
    ->setRedirect(Mage::helper('adminhtml')->getUrl('adminhtml/system_config'))
    ->sendHeadersAndExit();

Ответ из связанного вопроса:

Для этого не существует собственной функции.

Но вы можете использовать событие admin_session_user_login_success для этого.

Для реализации наблюдателя событий magento обратитесь к этой ссылке

Затем добавьте событие в свой config.xml файл

<adminhtml>
    <events>
        <admin_session_user_login_success>
            <observers>
                <some_unique_handle>
                    <class>[your_model]/observer</class> 
                    <method>adminRedirect</method>
                </some_unique_handle>
            </observers>
        </admin_session_user_login_success>
    </events>
</adminhtml>

Затем добавьте этот код в файл наблюдателя.

Т.е., Путь: приложение/код/{ваш-кодовый пул}/{пространство имен}/{модуль}/Model/Observer.php

public function adminRedirect($observer)
{
    //get admin user id from observer
    $currentUserId = $observer->getuser()->getId();
    //get User Role
    $userRole = Mage::getModel('admin/user')->load($currentUserId)->getRole()->getRoleName();
    if ($userRole == 'sales') {
             // If user role is sales then it'll redirect to the sales order list page
        $response = Mage::app()->getResponse();
        $response->clearHeaders()
            ->setRedirect(Mage::helper("adminhtml")->getUrl('adminhtml/sales_order'))
            ->sendHeadersAndExit();
    }
    return $this;
}
 3
Author: sv3n, 2017-07-27 15:01:39