CakePHP - ACL和设置ACO

时间:2013-02-21 12:02:39

标签: cakephp acl

我正在使用CakePHP应用程序实现ACL,我似乎正在努力设置ACO。我一直在关注Simple ACL Controlled Application教程,我已经很好地设置了aros,acos和aros_acos表,并通过groups / add和users / add添加了ARO很好 - 它们被添加到aros表中。 / p>

现在我正处于我必须设置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()函数中使用这样的代码,而不是使用你看到的插件。

或者......我不能在不使用ACL的情况下使用Auth来控制对控制器/操作的访问?例如,我可以在users表中添加“role”字段,然后在控制器的beforeFilter()中检查角色,如果用户没有正确的角色/权限,则重定向用户。这有什么不利之处?

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

1 个答案:

答案 0 :(得分:0)

以下插件让我很容易在我的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(使用上面的插件)更容易管理。