CakePHP - 检查ACL始终返回False

时间:2014-08-25 19:47:36

标签: php cakephp acl

我正在尝试创建一个允许用户为CakePHP应用程序中的每个组设置ACL权限的视图。但是,在尝试在视图中执行ACL检查时,ACL检查每次都返回false。

在我的控制器中,我有以下代码:

$this->set('acl', $this->Acl);

视图然后是这样的用户:

<input type="checkbox" <?php echo ($acl->check('Group::'.$group['Group']['id'], 'Accommodations', 'index') ? $checked : $notChecked); ?> name="<?php echo $group['Group']['name']; ?>_accommodations_index" value="1">List<br />

$ checked和$ notChecked变量设置如下:

$checked = " checked='checked' ";
$notChecked = "";            

这主要是为了创建一个复选框网格,它们最初是在哪里(如果该组有权访问它,则进行检查,如果该组没有,则取消选中。

复选框打印在一个表格中,该表格是通过迭代存在的每个组生成的。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

请检查url。可能你错过了一些事情。它将如下:

$acl->check(
    array(
       'Group' => array('id' => $group['Group']['id'])
    ), 
    'Accommodations', 
    'index'
);

答案 1 :(得分:0)

发现问题。

($acl->check(array('model' => 'Group', 'foreign_key' => $group['Group']['id']), 'Accommodations/index') ? $checked : $notChecked); ?>

我必须指定数组(&#39; model&#39; =&gt;&#39; Group&#39;,&#39; foreign_key&#39; =&gt; $ group [&#39; Group&#39 ;] [&#39; id&#39;])让它发挥作用。