gpt4 book ai didi

magento - 具有自定义角色的用户无法访问 Magento 管理界面中的自定义菜单项

转载 作者:行者123 更新时间:2023-12-04 16:35:16 26 4
gpt4 key购买 nike

我为 Magento 管理界面定义了一个自定义菜单项,其中包含几个子项。

当具有管理员角色的用户登录到管理界面时,这会按预期工作得很好。管理员可以查看所有子项目,还可以访问项目链接到的页面。这些页面中的每一个都以网格形式显示数据库表的内容。

但是当我尝试使用自定义角色时会出现问题。自定义角色可以访问菜单项及其子项。现在,当我使用具有此自定义角色的用户登录管理界面时,该用户会按预期看到所有菜单项,但是对于两个子项,当用户单击该子项时会收到拒绝访问消息。

这是 config.xml 中的 acl 和菜单条目。

...
<adminhtml>
<acl>
<resources>
<admin>
<children>
<deliveryservice translate="title">
<title>Deliveryservice</title>
<sort_order>300</sort_order>
<children>
<holiday translate="title" module="deliveryservice">
<title>Holidays</title>
<sort_order>5</sort_order>
</holiday>
<holidayset translate="title" module="deliveryservice">
<title>Holidaysets</title>
<sort_order>10</sort_order>
</holidayset>
<openinghour translate="title" module="deliveryservice">
<title>Openinghours</title>
<sort_order>20</sort_order>
</openinghour>
<delivery_address translate="title" module="deliveryservice">
<title>Delivery Areas</title>
<sort_order>30</sort_order>
</delivery_address>
<minimum_order_value translate="title" module="deliveryservice">
<title>Minimum order value</title>
<sort_order>40</sort_order>
</minimum_order_value>
<key_value_store translate="title" module="deliveryservice">
<title>Key Value Store</title>
<sort_order>50</sort_order>
</key_value_store>
<ratings translate="title" module="deliveryservice">
<title>Bewertungen</title>
<sort_order>60</sort_order>
</ratings>
</children>
</deliveryservice>
</children>
</admin>
</resources>
</acl>
<menu>
<deliveryservice translate="title">
<title>Deliveryservice</title>
<sort_order>300</sort_order>
<children>
<holiday translate="title" module="deliveryservice">
<title>Holidays</title>
<sort_order>5</sort_order>
<action>adminhtml/holiday/</action>
</holiday>
<holidayset translate="title" module="deliveryservice">
<title>Holidaysets</title>
<sort_order>10</sort_order>
<action>adminhtml/holidayset/</action>
</holidayset>
<openinghour translate="title" module="deliveryservice">
<title>Openinghours</title>
<sort_order>20</sort_order>
<action>adminhtml/openinghour/</action>
</openinghour>
<delivery_address translate="title" module="deliveryservice">
<title>Delivery Areas</title>
<sort_order>30</sort_order>
<action>adminhtml/deliveryaddress/</action>
</delivery_address>
<minimum_order_value translate="title" module="deliveryservice">
<title>Minimum Order Values</title>
<sort_order>40</sort_order>
<action>adminhtml/minimumordervalue/</action>
</minimum_order_value>
<key_value_store translate="title" module="deliveryservice">
<title>Key Value Store</title>
<sort_order>50</sort_order>
<action>adminhtml/keyvaluestore/</action>
</key_value_store>
<ratings translate="title" module="deliveryservice">
<title>Bewertungen</title>
<sort_order>60</sort_order>
<action>adminhtml/ratings/</action>
</ratings>
</children>
</deliveryservice>
</menu>
</adminhtml>
...

该问题出现在菜单项 minimum_order_value 和 key_value_store 上。

我不明白为什么管理员可以访问所有页面但不同的角色不能。
任何想法可能是什么问题?

最佳答案

好的我解决了这个问题。

它与与子菜单项和子菜单项标签名称相关联的 Controller 类有关。

每个 Controller 都有一个 _isAllowed()检查用户查看页面权限的方法。

例如。

protected function _isAllowed(){
return Mage::getSingleton('admin/session')->isAllowed('deliveryservice/holidayset');
}

在此方法中,用于调用 isAllowed() 方法的参数的最后一部分(斜线后面)必须等于 config.xml 中 acl 和菜单条目的子菜单项的标记名称。

所以对于这个例子,子菜单标签的名称必须是 <holidayset ...
对于我的两个 Controller ,标签名称和参数不相等。

关于magento - 具有自定义角色的用户无法访问 Magento 管理界面中的自定义菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12734494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com