CakePHP 1.3:Alaxos ACL插件无法识别Pages插件

时间:2012-02-01 20:02:54

标签: php mysql cakephp acl

我一直在使用CakePHP进行开发,而Alaxos ACL插件也有很大的帮助。

但是,我面临一个问题,我不知道如何解决它?

我添加了一个名为'pages'的插件,但我无法获取ACL以查看它,因此它被添加到允许/拒绝操作列表中。

如果我通过domain.com/pages/pages访问该插件,则会出现以下错误

DbAcl::check() - Failed ARO/ACO node lookup in permissions check.

当我通过ACL插件显示检查时,没有对页面控制器的引用,如果我运行ACL构建功能,它只是说没有什么可以添加。

是不是因为这个控制器是命名页面而且Cake中已经有一个页面控制器?

如果是我该如何解决?这是我唯一的选择,此时,手动将其添加到Db?我应该通过这个插件并将页面重命名为其他内容吗?或者还有什么我应该做的吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

我在这里看到两件事。首先,您怀疑,在您的应用程序中有两个共享相同名称的类是一个坏主意。它可能会以某种方式给你一些问题,错误的类被实例化或者其他什么。至于Cake不使用名称空间,不建议这样做。

然后,即使您更改此名称,如果要使用ACL管理的控制器是“默认”控制器(与插件同名的控制器),也会出现另一个问题。当路径包含两个相同名称时,ACO节点检索出现问题,插件默认控制器就是这种情况。

controllers/Pages/Pages/index

所以我决定从ACL插件支持的控制器中跳过插件默认控制器。

如果您是此插件的作者,则可以重命名它(因为PagesController已存在),并将操作移动到默认控制器之外的其他控制器中。