自定义模块magento中管理员用户的访问被拒绝

时间:2015-09-16 13:08:28

标签: php magento zend-framework admin acl

我已经为管理员用户创建了magento的自定义模块,我准备好了基本设置,我已经创建了一个用户角色并为该模块提供了资源访问权限,但是当我使用该用户凭据登录时,我正在获取访问被拒绝错误,但当我以管理员身份登录时,我可以访问该模块。 我的config.xml文件

<?xml version="1.0"?>
<config>
    <global>
    <modules>
        <Su_VirtualRetailer>
            <version>0.1.0</version>    
        </Su_VirtualRetailer>
    </modules>
    <blocks>
            <virtualretailer>
                <rewrite>
         <virtualretailer>Su_VirtualRetailer_Block_VirtualRetailer</virtualretailer>
        </rewrite>
            </virtualretailer>
     </blocks>
     <helpers>
            <su_virtualretailer>
                <!-- Helper definition needed by Magento -->
                <class>Mage_Core_Helper</class>
            </su_virtualretailer>            
        </helpers>
    </global>
    <frontend>
        <routers>
            <virtualretailer>
                <use>standard</use>
                <args>
                    <module>Su_VirtualRetailer</module>
                    <frontName>virtualretailer</frontName>
                </args>
            </virtualretailer>
        </routers>
        <layout>
            <updates>
                <virtualretailer>
                      <file>virtualretailer.xml</file>
                </virtualretailer>
            </updates>
        </layout>
    </frontend>
   <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <su_virtualretailer before="Mage_Adminhtml">Su_VirtualRetailer_Adminhtml</su_virtualretailer>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

</config>

我的adminhtml.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
        <retailertab module="su_virtualretailer" translate="title">
            <title>Virtual Retailer</title>
            <sort_order>100</sort_order>
            <children>
                <index module="su_virtualretailer" translate="title">
                    <title>Home</title>
                    <sort_order>1</sort_order>
                    <action>adminhtml/custom</action>
                </index>
                <myaccount module="su_virtualretailer" translate="title">
                    <title>My Account</title>
                    <sort_order>2</sort_order>
                    <action>adminhtml/custom/list</action>
                </myaccount>
                <shop module="su_virtualretailer" translate="title">
                    <title>Shop</title>
                    <sort_order>3</sort_order>
                    <action>adminhtml/custom/shop</action>
                </shop>
            </children>
        </retailertab>
    </menu>
    <acl>
        <resources>
            <admin>
                <children>
                    <retailertab translate="title" module="su_virtualretailer">
                        <title>Virtual Retailer</title>
                        <sort_order>-100</sort_order>
                        <children>
                            <index translate="title">
                                <title>Home Action</title>
                                <sort_order>1</sort_order>
                            </index>
                            <myaccount translate="title">
                                <title>My Account Action</title>
                                <sort_order>2</sort_order>
                            </myaccount>
                            <shop translate="title">
                                <title>Shop Action</title>
                                <sort_order>3</sort_order>
                            </shop>
                        </children>
                    </retailertab>
                </children>
            </admin>
        </resources>
    </acl>
</config>

我在config.xml中给了acl权限,我不确定我在这里做错了什么。 管理员用户登录错误屏幕截图 enter image description here

为管理员登录,屏幕截图工作 enter image description here

2 个答案:

答案 0 :(得分:16)

最后我得到了答案,在config.xml文件中我给出了以下代码

<acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>

            </resources>
</acl>

在我的控制器文件中,我给出了以下代码

protected function _isAllowed(){
        return true;
    }

然后一切按预期工作

答案 1 :(得分:2)

adminhtml.xml文件中的问题

<config>
    <menu>
        <retailertab module="su_virtualretailer" translate="title">
            <title>Virtual Retailer</title>
            <sort_order>100</sort_order>
            <children>
                <index module="su_virtualretailer" translate="title">
                    <title>Home</title>
                    <sort_order>1</sort_order>
                    <action>adminhtml/custom</action>
                </index>
                <myaccount module="su_virtualretailer" translate="title">
                    <title>My Account</title>
                    <sort_order>2</sort_order>
                    <action>adminhtml/custom/list</action>
                </myaccount>
                <shop module="su_virtualretailer" translate="title">
                    <title>Shop</title>
                    <sort_order>3</sort_order>
                    <action>adminhtml/custom/shop</action>
                </shop>
            </children>
        </retailertab>
    </menu>
    <acl>
        <resources>
            <admin>
                <children>
                    <retailertab translate="title" module="su_virtualretailer">
                        <title>Virtual Retailer</title>
                        <sort_order>-100</sort_order>
                        <children>
                            <index translate="title">
                                <title>Home Action</title>
                                <sort_order>1</sort_order>
                            </index>
                            <myaccount translate="title">
                                <title>My Account Action</title>
                                <sort_order>2</sort_order>
                            </myaccount>
                            <shop translate="title">
                                <title>Shop Action</title>
                                <sort_order>3</sort_order>
                            </shop>
                        </children>
                    </retailertab>
                </children>
            </admin>
        </resources>
    </acl>
</config>

按照上述更新代码。

  

只需将您的acl树节点自定义更改为 retailertab