我正在开发一个CakePHP 2的插件,但我不知道如何为它定义ACL。
它和申请一样吗?或者它是以另一种方式解决的?
谢谢!
答案 0 :(得分:0)
我今天在试图解决同样的问题时遇到了你的问题。假设您已经遵循CakePHP教程“简单ACL控制应用程序”,那么我的答案将是最有意义的。
直接回答你的问题,答案是肯定的。定义ACO(访问控制对象)与任何应用程序控制器相同。稍作修改。首先创建一个ACO记录来表示插件本身,它使用根ACO作为parent_id。插件控制器随后将使用插件ACO作为其parent_id(插件控制器操作将使用插件控制器ACO作为其parent_id)。
这有意义吗?
对于因为成功建立了ACL / Auth控制的应用程序而来到这里的任何人,已经构建了一个自定义插件(打算通过url访问它),正确配置的ACL和STILL无法访问他们的插件。我想提出以下建议,这花了我几天不懈的努力。
就我而言,我开发了一个插件,可以作为一个名为“Assets”的简单资产管理器(添加目录,上传/下载文件)。我在设置插件AppController和AppModel时遵循了精确的蛋糕规范,以允许通过url进行访问。正确配置ACL后,我仍然无法访问插件控制器/操作。最后,造成这个问题的原因是我所设计运行的元素中的“requestAction”具有top&侧导航。为了缓解这个问题,所有需要的是添加“plugin”=> null到url数组。
$ this-> requestAction(array('controller'=>'users','action'=>'get_side_navigation'));
$ this-> requestAction(array('plugin'=> null,'controller'=>'users','action'=>'get_side_navigation'));