我正在我拥有的 CakePHP 应用程序中实现 ACL,我似乎在努力设置 ACO。我一直在关注Simple ACL Controlled Application教程,并且已经很好地设置了 aros、acos 和 aros_acos 表,并且通过 groups/add 和 users/add 添加 ARO 效果很好 - 它们被添加到 aros 表中。
现在我正处于必须设置 ACO 的位置,老实说,我有点迷茫。本教程使用控制台插件来注册 ACO。但是,此Net Tuts使用以下方法手动添加它们:
$aco = new Aco();
$aco->create();
$aco->save(array(
'model' => 'User',
'foreign_key' => null,
'parent_id' => null,
'alias' => 'User'
));
$aco->create();
$aco->save(array(
'model' => 'Post',
'foreign_key' => null,
'parent_id' => null,
'alias' => 'Post'
));
使用这个手动代码,我们正在为整个用户和后控制器创建 ACO——我明白了。如果我想为用户控制器的编辑操作设置一个 ACO 怎么办?该语法看起来如何?
我想我宁愿在控制器的 install_aco() 函数中像这样编写它,也不愿使用你看到的插件。
或者......我不能只使用 Auth 控制对控制器/操作的访问而不使用 ACL 吗?例如,我可以在 users 表中添加一个“角色”字段,然后在控制器的 beforeFilter() 中检查角色,如果用户没有正确的角色/权限,则重定向用户。这会有什么缺点?
无论如何,我真的很感谢这里的一些帮助,非常感谢您的阅读。