2014-06-25 42 views
0

我正在使用CakePHP 2.5.2,并且我想要执行ACL检查是否允许用户使用所需的aco。 这是可以通过组名而不是groupID来检查吗?CakePHP通过组名称而不是ID检查权限

if ($this->Acl->check(array('model' => 'Group', 'name' => $aroName), $aco)) 

当我使用这个,CakePHP给我的错误,它找不到节点。

回答

0

API,检查方法接受:

字符串|数组|型号$裁判可选空

Array with 'model' and 'foreign_key', model object, or string value 

你可以尝试按名称查找组对象,然后通过它来Acl->检查

编辑:

$this->loadModel('Group'); 
    $this->Group->recursive = -1; 
    $node = $this->Group->findByName('Admin'); 
    CakeLog::write('debug',json_encode($this->Acl->check($node,'Users'))); 
+0

这就是我在这个问题的例子中显示的内容。这对我不起作用。 – user3772044

+0

你没有传递一个模型对象只是一个数组:在AclNode.php行130 130:} elseif(is_object($ ref)&& $ ref instanceof Model){ 131:$ ref = array('model'=> $ ref - > name,'foreign_key'=> $ ref-> id); –

+0

你能举个例子说明我可以如何传递一个对象吗? – user3772044