我一直在使用CakePHP进行开发,而Alaxos ACL插件也有很大的帮助。
但是,我面临一个问题,我不知道如何解决它?
我添加了一个名为'pages'的插件,但我无法获取ACL以查看它,因此它被添加到允许/拒绝操作列表中。
如果我通过domain.com/pages/pages访问该插件,则会出现以下错误
DbAcl::check() - Failed ARO/ACO node lookup in permissions check.
当我通过ACL插件显示检查时,没有对页面控制器的引用,如果我运行ACL构建功能,它只是说没有什么可以添加。
是不是因为这个控制器是命名页面而且Cake中已经有一个页面控制器?
如果是我该如何解决?这是我唯一的选择,此时,手动将其添加到Db?我应该通过这个插件并将页面重命名为其他内容吗?或者还有什么我应该做的吗?
谢谢,
答案 0 :(得分:1)
我在这里看到两件事。首先,您怀疑,在您的应用程序中有两个共享相同名称的类是一个坏主意。它可能会以某种方式给你一些问题,错误的类被实例化或者其他什么。至于Cake不使用名称空间,不建议这样做。
然后,即使您更改此名称,如果要使用ACL管理的控制器是“默认”控制器(与插件同名的控制器),也会出现另一个问题。当路径包含两个相同名称时,ACO节点检索出现问题,插件默认控制器就是这种情况。
controllers/Pages/Pages/index
所以我决定从ACL插件支持的控制器中跳过插件默认控制器。
如果您是此插件的作者,则可以重命名它(因为PagesController已存在),并将操作移动到默认控制器之外的其他控制器中。