Magento自定义模块管理员权限
我已经为Magento创建了一些自定义模块,当我尝试为该模块分配权限时(选中复选框),当我单击“保存”时,取消选中该框 有人有什么想法吗?听起来我的config.xml文件有点不对劲,所以我将在这里发布它,以防万一:Magento自定义模块管理员权限,magento,Magento,我已经为Magento创建了一些自定义模块,当我尝试为该模块分配权限时(选中复选框),当我单击“保存”时,取消选中该框 有人有什么想法吗?听起来我的config.xml文件有点不对劲,所以我将在这里发布它,以防万一: <config> <modules> <Wpe_Vendorlist> <version>0.1.0</version> </Wpe_Vendorlist> </modul
<config>
<modules>
<Wpe_Vendorlist>
<version>0.1.0</version>
</Wpe_Vendorlist>
</modules>
<admin>
<routers>
<vendorlist>
<use>admin</use>
<args>
<module>Wpe_Vendorlist</module>
<frontName>vendorlist</frontName>
</args>
</vendorlist>
</routers>
</admin>
<adminhtml>
<menu>
<customer>
<children>
<items module="vendorlist">
<title>SO Vendor List</title>
<sort_order>999</sort_order>
<action>vendorlist/adminhtml_vendorlist</action>
</items>
</children>
</customer>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Wpe_Vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</Wpe_Vendorlist>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<vendorlist>
<file>vendorlist.xml</file>
</vendorlist>
</updates>
</layout>
</adminhtml>
<global>
<models>
<vendorlist>
<class>Wpe_Vendorlist_Model</class>
<resourceModel>vendorlist_mysql4</resourceModel>
</vendorlist>
<vendorlist_mysql4>
<class>Wpe_Vendorlist_Model_Mysql4</class>
<entities>
<vendorlist>
<table>vendorlist</table>
</vendorlist>
</entities>
</vendorlist_mysql4>
</models>
<resources>
<vendorlist_setup>
<setup>
<module>Wpe_Vendorlist</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</vendorlist_setup>
<vendorlist_write>
<connection>
<use>core_write</use>
</connection>
</vendorlist_write>
<vendorlist_read>
<connection>
<use>core_read</use>
</connection>
</vendorlist_read>
</resources>
<blocks>
<vendorlist>
<class>Wpe_Vendorlist_Block</class>
</vendorlist>
</blocks>
<helpers>
<vendorlist>
<class>Wpe_Vendorlist_Helper</class>
</vendorlist>
</helpers>
</global>
</config>
0.1.0
管理
Wpe_供应商列表
卖主
SO供应商名单
999
供应商列表/adminhtml\u供应商列表
允许一切
供应商列表模块
10
vendorlist.xml
Wpe_供应商列表_模型
卖方清单4
Wpe_供应商列表_模型_Mysql4
卖主
Wpe_供应商列表
核心单元设置
核心写入
核心读取
Wpe_供应商列表块
Wpe\u供应商列表\u助手
我在magento论坛上找到了一些东西。转到以下链接:
但仍然无法从新创建的角色设置对这些自定义模块的权限。
这些自定义模块没有出现在新创建的角色用户的主菜单中。我强烈建议您查看一下系统配置,以及他的其他系列,这是我找到的关于magento编程的最好信息 对于这个特殊的问题,以下是我如何在我的模块中使用您的模块名称完成的:
<acl><!-- permits -->
<resources>
<admin>
<children>
<customer translate="title" module="vendorlist"><!-- this tag matches the menu tag, and the same for his children -->
<title>what will appears in the checkboxes tree when you create a role</title>
<children>
<firstchild>
<title>what will appears in the checkboxes tree when you create a role</title>
</firstchild>
</children>
</customer>
</children>
</admin>
</resources>
</acl>
创建角色时,复选框树中将显示什么
创建角色时,复选框树中将显示什么
您不需要:
<children>
<firstchild>
<title>what will appears in the checkboxes tree when you create a role</title>
</firstchild>
</children>
创建角色时,复选框树中将显示什么
由于您的模块中没有子模块,因此我仅将其作为示例。我希望这有帮助,请更改config.xml并替换
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Wpe_Vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</Wpe_Vendorlist>
</children>
</admin>
</resources>
</acl>
允许一切
供应商列表模块
10
与
允许一切
供应商列表模块
10
只需在children标记后更改vendorlist,而不是Wpe_vendorlist。此更改在我的自定义模块中对我有效,希望也能帮助其他人。更改acl标记模块中的语法后,将显示在自定义模块权限中。您应该在资源和菜单项名称中仅使用小写字符。请参阅app/code/core/Mage/Adminhtml/Block/Permissions/Tab/Rolesedit.php上的构造函数
public function __construct()
{
...
foreach ($rules_set->getItems() as $item) {
$itemResourceId = $item->getResource_id();
if (array_key_exists(strtolower($itemResourceId), $resources) && $item->getPermission() == 'allow') {
$resources[$itemResourceId]['checked'] = true;
array_push($selrids, $itemResourceId);
}
}
....
我也建议您考虑将ACL和菜单信息移动到Admin HTML.xml,而不是在CONFIG.XML.
上。 另一个问题是,菜单树和acl树中的结构应该完全相同,因此acl反映了菜单结构,并且magento知道在授予角色权限时启用什么。伊万·切普尼(Ivan Chepurnyi)有一篇关于这方面的好文章 因此,在更改之后,您将在adminhtml.xml上得到类似的结果:<adminhtml>
<menu>
<customer>
<children>
<wpe_vendorlist module="vendorlist">
<title>SO Vendor List</title>
<sort_order>999</sort_order>
<action>vendorlist/adminhtml_vendorlist</action>
</wpe_vendorlist>
</children>
</customer>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<customer>
<children>
<wpe_vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</wpe_vendorlist>
</children>
</customer>
</children>
</admin>
</resources>
</acl>
</adminhtml>
SO供应商名单
999
供应商列表/adminhtml\u供应商列表
允许一切
供应商列表模块
10
moduleCreator为acl创建语法错误的模块配置文件。这就是问题所在。
<adminhtml>
<menu>
<customer>
<children>
<wpe_vendorlist module="vendorlist">
<title>SO Vendor List</title>
<sort_order>999</sort_order>
<action>vendorlist/adminhtml_vendorlist</action>
</wpe_vendorlist>
</children>
</customer>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<customer>
<children>
<wpe_vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</wpe_vendorlist>
</children>
</customer>
</children>
</admin>
</resources>
</acl>
</adminhtml>