根据Magento中的用户角色禁用后端模块

时间:2014-12-18 09:47:26

标签: magento magento-1.7

是否可以根据活跃用户的角色在Magento中禁用自定义后端模块?如果我创建一个登录侦听器,并在该侦听器中获取用户角色,是否有任何可以调度以禁用特定模块的事件?

2 个答案:

答案 0 :(得分:2)

您根本不需要编辑代码。只需根据需要创建模块,您就可以通过创建用户角色来控制管理员的模块输出。只需转到Admin -> System -> Permission -> Roles -> Create New Role-> Role Resources -> Select Resource Access to Custom(您可以在此处查看系统中所有已启用的所有模块),然后取消选中该用户角色的模块。保存。完了。这就是全部。

答案 1 :(得分:0)

是。您的自定义模块需要具有acl资源定义,以便您可以根据用户角色启用和禁用模块或其某些操作。这实际上相对简单,可以通过在modules etc文件夹中创建一个名为adminhtml.xml的文件来完成。此文件将包含管理员中模块菜单系统的定义,它还将包含访问控制列表的定义。

使用模块操作的定义创建文件后,清除缓存,然后在编辑用户角色时应该看到配置选项。

<config>
    <menu>
        <your_module_name module="your_module_name">
            <title>Your Module Name</title>
            <sort_order>100</sort_order>
            <children>
                <new module="your_module_name" translate="title">
                    <title>Add New Article</title>
                    <sort_order>0</sort_order>
                    <action>your_module_name_admin/manage/new</action>
                </new>
                <list module="your_module_name" translate="title">
                    <title>Articles</title>
                    <sort_order>10</sort_order>
                    <action>your_module_name_admin/manage/index</action>
                </list>
                <settings translate="title" module="your_module_name">
                    <title>Settings</title>
                    <action>adminhtml/system_config/edit/section/your_module_name</action>
                    <sort_order>40</sort_order>
                </settings>
            </children>
        </your_module_name>
    </menu>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <your_module_name>
                        <title>Your Module Name</title>
                        <sort_order>70</sort_order>
                        <children>
                            <new>
                                <title>Create New Article</title>
                                <sort_order>0</sort_order>
                            </new>
                            <list>
                                <title>View &amp; Edit Articles</title>
                                <sort_order>1</sort_order>
                            </list>
                        </children>
                    </your_module_name>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <your_module_name>
                                        <title>Config Section Under System --> Configuration If Your Module Has One</title>
                                    </your_module_name>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</config>