CakePHP - 路由与Acl / Auth

时间:2011-06-30 13:47:42

标签: cakephp routing admin acl

在CakePHP中,当您使用Acl / Auth时,是否需要启用Routing.prefixes来控制管理员访问?或者你应该依靠Acl / Auth并摆脱所有admin_xxx行动。

我正在学习CakePHP,并在认证过程中感到困惑。所以我开始启用Routing.prefixes。在我的应用程序开发过程中,我慢慢开始迁移到Acl / Auth。我将拥有几组用户,例如管理员,贡献者,赞助商和用户。之前我读过,只有1个管理员才会使用Routing.prefixes。

作为一个例子,我有以下内容:

<?php
class ArticlesController extends AppController{
    // Helpers and Components will be included here....
    $this->Auth->allow('*')
    function admin_add(){
        $this->layout = 'admin'
        //...
    }
}

如果我能够摆脱管理员路由,我应该执行以下操作吗?

<?php
class ArticlesController extends AppController{
    // Helpers and Components will be included here....
    $this->Auth->allow('*')
    // Control access to add() using ACL to only allow admin/contributors to use this action
    function add(){
        $this->layout = 'admin'
        //...
    }
}

这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

基本上,如果你在“普通”用户和管理员之间有一条直线,并且不需要从某些管理员那里削减权限或者让一个用户获得更多特权,那么routing.prefixes是制作管理区域的好方法。另一个。
但是,如果您需要在许多不同的组和/或用户之间允许和拒绝非常不同的权限,组和事物,ACL是正确的方法。
如果您使用ACL并且您的方法完全正确,则不再需要Routing.prexfixes。