3

我为我的 CakePHP 应用程序设置了一个自定义身份验证系统。现在我们需要在其中包含一些 ACL。我按照这里的说明进行操作。现在由于某种原因,我需要使用表 admin_users 和 admin_user_roles 而不是通常的组和用户。我可以正常登录,但 ARO 搜索失败。它给了我以下错误。

Warning (512): AclNode::node() - Couldn't find Aro node identified by "Array
(
    [Aro0.model] => User
    [Aro0.foreign_key] => 4
)
" [CORE/Cake/Model/AclNode.php, line 176]
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node          references:
    Aro: Array
    (
        [User] => Array
        (
            [id] => 4
            [admin_user_role_id] => 1
            [email] => mio@kalibrr.com
            [username] => mio
            [created] => 2012-09-28 08:03:25
            [modified] => 2012-10-01 02:09:42
         )

)

Aco: controllers/Dashboard/index [CORE/Cake/Controller/Component/AclComponent.php, line 303]

它似乎仍在用户模型中寻找它。有什么方法可以更改它以便在 AdminUsers 表中查找它?

查看 DB 和 Model 字段都指向 AdminUser。

4

1 回答 1

3

解决了。

将此行添加到 Appcontroller

'authorize' => array(
'Actions' => array('userModel' => 'AdminUser','actionPath' => 'controllers')

这里 AdminUser 是我的模型的名称。

于 2012-10-02T08:05:56.070 回答