如何列出CakePHP Acl ACO和ARO结构?

时间:2013-07-03 12:20:33

标签: cakephp acl

我想通过Acos列出CakePHP Acl数据库以及Aro是否具有是或否的权限。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

使用acl shell

Cake内置acl shell,它提供了一个用于修改或查看acl数据的界面。它包含一个view (tree)函数,允许查看您的访问控制对象(aco,“事物”)和访问请求对象(aro,用户)数据层次结构:

示例aco树:

$ Console/cake acl view aco

Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aco tree:
---------------------------------------------------------------
  [1] controllers
    [2] Posts
  [3] Posts
    [4] index
---------------------------------------------------------------

aro tree示例:

$ Console/cake acl view aro

Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Aro tree:
---------------------------------------------------------------
  [1] Group.1
---------------------------------------------------------------

还有一个检查功能,用于确定给定的aro是否可以访问给定的aco:

$ Console/cake acl check Group.1 controllers/Posts

Welcome to CakePHP v2.4.0-dev Console
---------------------------------------------------------------
App : app
Path: /var/www/app/
---------------------------------------------------------------
Group.1 is allowed.

谁可以访问不可能的

acl数据的本质是检查单个组合(此特定用户访问此特定对象)相对昂贵,并且(尽管可能)构建不切实际“谁可以访问什么”的一般解决方案,这就是为什么没有核心提供的方法来回答这个问题。

对于给定的acos列表,您可以轻松地在它们上面调用AclComponent::check来获取“特定用户可以访问的内容”的答案列表。可以像使用AroAco模型的任何其他模型数据一样访问acl数据。

相关问题