0

我正在构建一个需要使用 ACL 的应用程序。我正在尝试检查我的一个控制器中的操作中的权限。这是我的蛋糕控制台代码,它有效:

./cake acl check Group.83 controllers all
Group.83 is allowed.

但是,在我的控制器中,当我使用此代码时,它应该返回 true:

$checkPerm = $this->Acl->check('Group.83', 'controllers', 'all');

我收到此错误:

Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Group.83
Aco: controllers [CORE/cake/libs/controller/components/acl.php, line 273]

我知道我的 ACL 设置正确,否则 cake 控制台命令会失败。我认为它在我的控制器中,但我不确定是什么导致了这个错误。有任何想法吗?

4

1 回答 1

1

shell 使用点语法,因为数组或正斜杠不起作用。然后,shell 提取并使其可由组件读取,该组件使用数组语法。将您的支票更改为:

$checkPerm = $this->Acl->check(array(
  'model' => 'Group',
  'foreign_key' => 83
), 'controllers', 'all');

那应该照顾它!

于 2012-05-24T14:45:40.970 回答