php - Magento 自定义 ACL 默认返回 TRUE

标签 php magento magento-1.7 acl

我已经在“管理客户”中为一个选项卡定义了一个 acl

    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <customer>
                        <children>
                            <manage>
                                <children>
                                    <managepoint translate="title">
                                        <title>Manage Point</title>
                                        <sort_order>100</sort_order>
                                    </managepoint>
                                </children>
                            </manage>
                        </children>
                    </customer>
                </children>
            </admin>
        </resources>
    </acl>

使用这段代码

public function canShowTab(){
    if(!Mage::getSingleton('admin/session')->isAllowed('customer/manage/managepoint'))
        return false;
    return true;
}

默认情况下,除了管理员角色之外的任何用户角色下的所有用户 Mage::getSingleton('admin/session')->isAllowed('customer/manage/managepoint') 应该返回 FALSE 但实际上它返回 TRUE ,但如果我选中然后取消选中此 ACL 以获得特定角色,则 ACL 将按预期开始工作。

谁能告诉我为什么 Mage::getSingleton('admin/session')->isAllowed('customer/manage/managepoint') 默认返回 FALSE。

最佳答案

花了一些时间,但经过适当的测试后,我得出了关于 ACL 的 Magento 行为的结论。

Mangento 将 Role 资源存储在 admin_role 表中,权限为 deny/allow。因此,每当我们创建新角色时,admin_role 中的任何角色都没有该资源的条目,默认情况下 isAllowed 将返回 TRUE 值。但此后,如果我们创建新角色并且未选中我们的自定义 ACL,则 admin_role 会使用“拒绝”权限保存条目。所以 isAllowed 将按预期工作。 因此,在创建新的 ACL 之后,我们要么必须转到每个角色并将这些角色保存一次,要么转到 admin_role 表并为所有 role_id 提供条目

关于php - Magento 自定义 ACL 默认返回 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762846/

相关文章:

Magento 不向未登录的用户显示产品

php - 如何防止重复的用户名和电子邮件数据?

PHP mysql jquery 分页修改

seo - magento 网址重写

magento - Magento 中不同的 *get helper* 方法有什么区别?

magento-1.7 - magento 通知 : Array to string conversion lib\Varien\Data\Form\Element\Image. php 第 57 行

php - 在 Magento 中为 links.phtml 列表的 UL 添加一个类

php - 图片上传到客户表格作为背景

PHP变量引用和内存使用

xml - Groovy RPC和Magento API:product_attribute.create和无效的请求参数