0

我正在使用 cakephp 2.3.0 并使用 ACL。我授予以下组的权限:

$group->id = 2;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Posts');

现在我如何检查来自同一控制器的 $group->id = 2 是否允许“控制器/帖子”?

我在尝试

$this->Acl->check('controllers/Posts', '2');

但它总是返回 false 并生成警告:

Failed ARO/ACO node lookup in permissions check. Node references:
Aro: controllers/Pages
Aco: Data entry operator

请帮我。谢谢。

4

2 回答 2

3

句法

$this->Acl->check(array(
    'model' => 'ModelName',       # The name of the Model to check agains
    'foreign_key' => $foreign_key # The foreign key the Model is bind to
), 'Controller/action');          # The controller and action to check the permissions for

这导致以下调用:

作为用户

$this->Acl->check(array(
    'model' => 'User',
    'foreign_key' => $userId
), 'Posts/index');

作为一个团队

$this->Acl->check(array(
    'model' => 'Group',
    'foreign_key' => $groupId
), 'Posts/index');

我把它写下来,包括一些换行符以提高可读性。

更多信息在:

于 2013-05-30T21:06:02.723 回答
0

检查节点权限与设置该权限非常相似,即

$group->id = 2;
 $this->Acl->check($group, 'controllers/Posts');
于 2015-03-19T07:13:17.530 回答