Пользовательский модуль: Доступ запрещен (проблема с ACL)
Я создал модуль, и он отлично работает; однако я ударился о стену. Когда я вхожу в систему как администратор, все хорошо. Я добавил это в список управления доступом:
<?xml version="1.0"?>
<config>
<menu>
<erp translate="title" module="firtal_deadstock">
<title>ERP</title>
<sort_order>99</sort_order>
<children>
<stock_management module="firtal_deadstock">
<title>Stock Management</title>
<children>
<firtal_deadstock>
<title><![CDATA[Firtal Stock Analysis]]></title>
<sort_order>99</sort_order>
<action>adminhtml/deadstock</action>
</firtal_deadstock>
</children>
</stock_management>
</children>
</erp>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<system>
<children>
<config>
<children>
<firtal_deadstock translate="title">
<title>Firtal Stock Analysis settings</title>
<sort_order>100</sort_order>
</firtal_deadstock>
</children>
</config>
</children>
</system>
<erp module="firtal_deadstock">
<children>
<stock_management module="firtal_deadstock">
<children>
<firtal_deadstock translate="title" module="firtal_deadstock">
<title>Firtal Stock Analysis</title>
</firtal_deadstock>
</children>
</stock_management>
</children>
</erp>
</children>
</admin>
</resources>
</acl>
</config>
Но если я предоставлю разрешение роли и войду в систему как пользователь с этой ролью, они увидят пункт меню (не конфигурацию, а фактическую точку меню), но если я нажму его, я получу ошибку "Отказано в доступе":
Чего мне не хватает?
12
1 answers
У меня есть подозрение, что у вас в вашем контроллере администратора есть метод, называемый _isAllowed
.
Если это правда, я думаю, что он возвращает не то, что нужно.
Это должно выглядеть так:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('erp/stock_management/firtal_deadstock');
//or at least
//return Mage::getSingleton('admin/session')->isAllowed('erp/stock_management');
}
24
Author: Marius, 2014-07-18 11:51:18