CakePHP中的ACL和管理路由

时间:2014-02-07 20:27:58

标签: php cakephp cakephp-2.0 acl

首先我们说我的模型类是UserEntries

我已阅读以下教程:http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html我看到他们使用名为Group的额外模型,以便为用户分配角色。

  1. Group中使用role模型而不是User属性有什么不同(User.role ='admin')

  2. Group添加到ARO而不是将User添加到ARO,然后使用别名有什么区别。

  3. 如果我实施ACL,这是否意味着我不再需要管理路由?

  4. PD:我是ACL列表的新手,我总是使用类似if($user['role'] == 'admin')的内容授权操作。

1 个答案:

答案 0 :(得分:2)

  1. 这是处理身份验证的两种不同方式。如果您只有一些控制器和一个或两个管理员,那么使用现在的User.role方法可能会很好。如果您有多个控制器和应该有权访问您站点不同部分的各种用户,则应使用ACL。

  2. 您不需要创建Groups来使用ACL,但它可以让生活变得更轻松。您可以创建两个或三个组,为这些组设置权限,然后将每个用户分配给其中一个组,而不是为数十个不同的用户分配权限。然后,如果您需要添加新控制器 - 甚至是新视图 - 您只需要在组级别而不是每个用户执行此操作。 (看看this demo。现在想象你有另外10个控制器/ 50个动作,你必须为20或30个用户而不是4个组设置这些权限。)当然,即使你正在设置权限在Group级别,如果需要,您可以始终在User级别覆盖它们。

  3. 管理员路由与ACL分开。路由只控制可用于访问页面的URL。 (参见Cake PHP - Prefix Routing。您可以在没有管理员路由的情况下使用ACL控制,并且可以使用没有ACL控制的管理路由。

相关问题