CakePHP Acl混乱-拒绝对组的访问,但该组的用户具有访问权限

CakePHP Acl混乱-拒绝对组的访问,但该组的用户具有访问权限,cakephp,cakephp-1.3,acl,Cakephp,Cakephp 1.3,Acl,现在,我的ACL控制的应用程序中肯定缺少一些内容。我的用户模型属于一个称为角色的模型。我在两个模型中都包含了ACL行为。两个模型都有parentNode函数-在Role中,返回null。在User中,代码如下所示: public function parentNode() { if (!$this->id && empty($this->data)){ return null; } if (isset($this->dat

现在,我的ACL控制的应用程序中肯定缺少一些内容。我的用户模型属于一个称为角色的模型。我在两个模型中都包含了ACL行为。两个模型都有parentNode函数-在Role中,返回null。在User中,代码如下所示:

public function parentNode() {
    if (!$this->id && empty($this->data)){
        return null;
    }
    if (isset($this->data['User']['role_id'])){
        $roleId = $this->data['User']['role_id'];
    } else {
        $roleId = $this->field('role_id');
    }
    if (!$roleId){
        return null;
    } else {
        return array('Role' => array('id' => $roleId));
    }
}
我作为角色为8的用户登录。在my aros表中,用户的父\u id为9,这是正确角色的aro条目

我创建了以下操作来说明问题:

public function permissions(){
    $this->autoRender = false;
    if($this->Acl->check(array('model'=>'User','foreign_key'=>$this->Auth->user('id')),'Countries')){
        echo 'User: Allowed<br />';
    }else{
        echo 'User: Forbidden<br />';
    }
    if ($this->Acl->check(array('model'=>'Role','foreign_key'=>$this->Auth->user('role_id')),'Countries')){
        echo 'Role: Allowed';
    }else{
        echo 'Role: Forbidden';
    }
}
用户条目在aros_acos表中没有任何条目。该表中只有角色ARO的条目

有人能解释一下吗

谢谢

编辑-如果不清楚,预期的行为将是禁止用户和角色访问此控制器(“国家”)

编辑-我确实分配权限,如下所示:

    $this->Acl->deny('City admin','Countries');

我已经在数据库中验证了这一点。

既然你还没有回答我的问题,我就要冒险了。你查过了吗


因为您没有显示,所以无法确定,但您应该按照该链接中指定的方式设置权限和允许的操作。

您在哪里分配权限?你看过关于设置权限的食谱了吗?如果你对我的问题有所了解,也许我可以帮你一把谢谢,我确实分配了我的权限,编辑了我的问题以包括这一点。在拒绝控制器/国家中更改“国家”
    $this->Acl->deny('City admin','Countries');