【问题标题】:cakePHP : how ACL allow action in plugin?cakePHP:ACL 如何允许插件中的操作?
【发布时间】:2011-03-09 09:24:04
【问题描述】:

我有插件

  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]

所有其他操作都是权限有效但插件操作,我找不到原因。任何人都可以帮助我。

【问题讨论】:

  • cake acl view aco 的控制台输出是什么?

标签: cakephp acl


【解决方案1】:

我不明白您为什么将 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

【讨论】:

【解决方案2】:
  1. Cakephp 1.3 发生了变化。只有 index 路由是 supported 对于与插件命名相同的控制器。因此,如果您使用 1.3 版本,则需要先处理该问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    相关资源
    最近更新 更多