无法获得CakePHP Cookbook简单ACL示例工作


Unable to Get CakePHP Cookbook Simple ACL Example Working

我有问题得到ACL与CakePHP工作。我一直在使用CakePHP Cookbook 2.0示例简单Acl控制的应用程序,并且已经执行了两次步骤,但两次都遇到了相同的问题。

一切似乎都设置正确。

  • 我可以创建我的组和用户。
  • aros表看起来与web上的示例中显示的行相同。
  • acosaros_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');