Перенаправление пользователя-администратора в конфигурацию системы в пользовательском модуле
Я не знаю, возможно это или нет.
Я хочу перенаправить пользователя в конфигурацию системы, когда пользователь вошел в систему с правами администратора.
Возможно ли это?
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;
}