我有问题得到ACL与CakePHP工作。我一直在使用CakePHP Cookbook 2.0示例简单Acl控制的应用程序,并且已经执行了两次步骤,但两次都遇到了相同的问题。
一切似乎都设置正确。
- 我可以创建我的组和用户。
- aros表看起来与web上的示例中显示的行相同。 acos和aros_acos表似乎被填充了与文章相似的值。
- 当我访问一个设置为受保护的页面时,我看到的是登录页面。
但是当我使用我创建的帐户登录时,我看到以下错误:
Warning (512): DbAcl::check() -
Failed ARO/ACO node lookup in permissions check. Node references:
Aro: Array
(
[User] => Array
(
[id] => 1
[username] => dc
[email] => myemail@somedomain.com
[group_id] => 1
[created] => 2011-10-27 14:58:59
[modified] => 2011-10-27 14:58:59
)
)
Aco: /Posts/add [CORE/Cake/Controller/Component/AclComponent.php, line 303]
该帐户已被设置为管理员,并且管理员组已被授予对所有内容的访问权限…所以如果成功了,我应该没有问题……但似乎有一个更低级别的问题阻碍了我。如果有帮助的话,我也可以发布我的数据库表,但我想我会从这里开始。
已更新文档以解决此问题。如果你在AppController的beforeFilter方法中添加这个,它就解决了这个问题。
$this->Auth->authorize = array(
AuthComponent::ALL => array('actionPath' => 'controllers'),
'Actions',
);
在beforeFilter()中添加$this->Auth->allow('initDB');