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


CakePHP 1.3: Alaxos ACL Plugin not recognizing Pages Plugin

我一直在使用CakePHP进行开发,Alaxos ACL插件在这方面起到了巨大的帮助。

然而,我面临着一个问题,我不确定如何解决它?

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

如果我通过domain.com/pages/pages访问插件,我会得到以下错误

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

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

是因为这个控制器被命名为页面,而Cake中已经有一个页面控制器了吗?

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

谢谢,

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

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

controllers/Pages/Pages/index

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

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