cakePHP:ACL如何在插件中执行操作?

时间:2010-06-28 23:40:46

标签: cakephp acl

我有插件

  plugin: tree 
  -----controller: tree
  -------------action : admin_index

数据库表aros_acos已为此aco更新了_CRUD 1 1 1 1。 我编码$ this-> Acl-> check(array('model'=>'User','foreign_key'=> 2),'Tree / Tree / admin_index');

错误:

DbAcl::check() - Failed ARO/ACO node lookup in permissions check.  Node references:
Aro: Array
(
    [model] => User
    [foreign_key] => 2
)

Aco: Tree/Tree/admin_index [CORE\cake\libs\controller\components\acl.php, line 273]

所有其他操作都是权限有效但插件的动作,我找不到理由。任何人都帮助我。

2 个答案:

答案 0 :(得分:0)

我不明白为什么你把Tree作为一个插件 - 这是一个核心行为。

请从aros_acos表中发布相应的行。

您传入Acl->check的数组对我来说不合适。我传入$ this-> Auth-> user()的输出,它看起来像:

Array
(
    [User] => Array
        (
            [id] => 12
            [username] => somebody
            [group_id] => 1
        )
)

看看Mark Story的教程 - 它非常棒: http://mark-story.com/posts/view/auth-and-acl-an-end-to-end-tutorial-pt-1

答案 1 :(得分:0)

  1. Cakephp 1.3发生了变化。对于名称与插件相同的控制器,只有index路由为supported。因此,如果您使用1.3版本,则需要首先处理。

  2. 检查控制台中的ARO和ACO树:cake acl view acocake acl view aro。尝试检查控制台cake acl check YOURARO YOURACO all

  3. 的权限