自定义模块:访问被拒绝(ACL问题)


12

我创建了一个模块,它运行完美。但是,我撞墙了。当我以管理员身份登录时,一切都很好。我在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>  

但是,如果我授予角色权限并以该角色的用户身份登录,他们会看到菜单点(不是配置,而是实际的菜单点),但是如果我按它,则会出现“访问被拒绝”错误:

在此处输入图片说明

我想念什么?

Answers:


24

我有一种预感,在您的管理控制器中有一种称为的方法_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');  

}

H!就是这样 实际上,我尝试添加_isAllowed(),但是给了我503。我在实时服务器上工作,所以看不到异常数据。显然是因为我忘记了在课堂上宣布它的时候才重新声明它。谢谢大家,祝您周末愉快!
Dencker 2014年

或者,您也可以这样写:受保护的函数_isAllowed(){return true; }
Andhi Irawan

2
但这将使每个管理员都可以使用它。即使他不应该使用它。
马吕斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.