CakePHP Auth仅用于管理前缀

CakePHP Auth仅用于管理前缀,cakephp,authentication,cakephp-2.4,Cakephp,Authentication,Cakephp 2.4,我有管理员前缀,我们有一个基于CMS的部分,网站所有者将能够维护应用程序的内容 是否有任何方法可以通过Auth组件自动限制这些部分。而其他部分不需要身份验证 // other wise i will have to add a lot of actions like below $this->Auth->allow('home', 'about', 'contacts); 您只需使用基于控制器的授权即可完成此任务: 其思想是在控制器(以及需要特定规则的任何控制器)中有一个isAu

我有管理员前缀,我们有一个基于CMS的部分,网站所有者将能够维护应用程序的内容

是否有任何方法可以通过Auth组件自动限制这些部分。而其他部分不需要身份验证

// other wise i will have to add a lot of actions like below
$this->Auth->allow('home', 'about', 'contacts);

您只需使用基于控制器的授权即可完成此任务:

其思想是在控制器(以及需要特定规则的任何控制器)中有一个isAuthorized()方法,该方法根据用户的授权返回true或false

因此,您可以通过在AppController中放置类似以下内容来禁用所有管理路径(已验证的路径除外):

public function isAuthorized($user) {
    // * Admin section control
    if (empty($this->params['admin'])) {
        // ** DEFAULT: All users can access public functions
        return true;
    } else if(AuthComponent::user('role') == 'admin'){
        // ** Allow admin users access to everything.
        return true;
    }
    // * DEFAULT: Deny all
    return false;
}

编辑:Oops——这只有在用户已经通过身份验证(登录)时才有用,对不起。

just
$this->Auth->allow()
前缀!='admin'

因此,将其添加到AppController,我需要在所有控制器中调用beforeFilter()以检查授权?授权仍然要求用户登录,我的要求是允许角色为“admin”的用户能够访问具有“admin”的所有操作cakephp3.x中的前缀……你能帮我一下吗?