【问题标题】:CakePHP - ACL and Setting ACOCakePHP - ACL 和设置 ACO
【发布时间】:2013-02-21 12:02:38
【问题描述】:

我正在我拥有的 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 - 我明白了。如果我想为用户控制器的 edit 操作设置 ACO,该怎么办?该语法看起来如何?

我想我宁愿在控制器的 install_aco() 函数中像这样编写代码,也不愿使用您看到的插件。

或者...我不能只使用 Auth 控制对控制器/操作的访问而不使用 ACL 吗?例如,我可以在 users 表中添加一个“角色”字段,然后在控制器的 beforeFilter() 中我可以检查角色,如果用户没有正确的角色/权限,则重定向用户。这样做有什么缺点?

无论如何,我真的很感谢这里的一些帮助,非常感谢您的阅读。

【问题讨论】:

    标签: cakephp acl


    【解决方案1】:

    以下插件让我在我的 CakePHP 应用程序中实现 ACL 变得非常容易:

    http://www.alaxos.net/blaxos/pages/view/plugin_acl_2.0

    它提供了一个非常好的界面,不仅可以设置您提到的权限(用户控制器的编辑操作),还可以在整个应用程序中找到所有 ACO。

    您还提到了采用非 ACL 方法,您的建议应该可以正常工作。查看 CakePHP 网站上的这个页面,注意 isAuthorized() 部分:

    http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

    我个人使用过这两种方式,但发现 ACL(使用上述插件)更易于管理。

    【讨论】:

    • 嗨@Ryan,非常感谢您的回复。我认为对于这个应用程序,我将通过编写一些角色检查并使用没有 ACL 的 Auth 组件来控制访问。无论如何,我都需要进行检查以控制用户/记录级别的访问,因此这样做似乎是合适的。再次感谢。
    • 插件有最新的 cakephp 错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多