Magento - 无法保存自定义模块的角色资源



我已经创建了一个自定义模块,我的config.xml如下…

<?xml version="1.0"?>
  <config>
   <admin>
    <routers>
        <blacklist>
            <use>admin</use>
            <args>
                <module>Leon_Blacklist</module>
                <frontName>blacklist</frontName>
            </args>
        </blacklist>
    </routers>
</admin>
<adminhtml>
    <menu>
        <blacklist translate="title" module="blacklist">
            <title>Blacklist</title>
            <sort_order>71</sort_order>               
            <children>
                <items translate="title" module="blacklist">
                    <title>Manage Items</title>
                    <sort_order>0</sort_order>
                    <action>blacklist/adminhtml_blacklist</action>
                </items>
            </children>
        </blacklist>
    </menu>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <Leon_Blacklist translate="title" module="blacklist">
                        <title>Blacklist Module</title>
                        <sort_order>10</sort_order>
                        <children>
                            <items translate="title" module="blacklist">
                                <title>Manage Items</title>
                            </items>                        
                        </children>
                    </Leon_Blacklist>
                </children>
            </admin>
        </resources>
    </acl>
    <layout>
        <updates>
            <blacklist>
                <file>blacklist.xml</file>
            </blacklist>
        </updates>
    </layout>
</adminhtml> 
<config>

如果管理员帐户登录,则模块按预期工作。我可以在管理面板和角色资源选项卡(系统->权限->角色)中看到模块,但是当我试图检查模块并保存用户角色时,它会说它已被保存。但是当我重新检查用户角色时,它仍然是未检查的。

当我尝试使用具有上述用户角色的帐户登录时,自定义模块被隐藏。有什么问题吗?任何形式的帮助都是非常感激的。

谢谢。

您的acl部分配置有点错误。标签应该类似于菜单部分。在你的例子中应该是这样的:

<acl>
    <resources>
        <admin>
            <children>
                <blacklist translate="title" module="blacklist">
                    <title>Blacklist Module</title>
                    <sort_order>10</sort_order>
                    <children>
                        <items translate="title" module="blacklist">
                            <title>Manage Items</title>
                        </items>                        
                    </children>
                </blacklist>
            </children>
        </admin>
    </resources>
</acl>

这是config.xml的acl部分

<acl>
    <resources>
        <all>
            <title>Allow Everything</title>
        </all>
        <admin>
            <children>
                <banner translate="title" module="banner">
                    <title>Banner Module</title>
                    <sort_order>10</sort_order>
                    <children>
                        <banner translate="title" module="banner">
                            <title>Manage Banners</title>
                        </banner>                      
                    </children>
                </banner>
            </children>
        </admin>
    </resources>
</acl>

还可以在控制器中添加以下功能,以避免出现"Access denied"消息

protected function _isAllowed(){
        return true;
}

代码取自:http://chandreshrana.blogspot.in/2015/06/custom-module-role-not-save-in.html

最新更新