CakePHP ACL - 多组模型

时间:2014-01-17 20:16:37

标签: php cakephp permissions acl

我正在使用CakePHP应用程序实现ACL组件。我已经为用户和组正确设置了所有内容,但是该应用程序将具有多个访问区域,其中权限不仅基于用户而且基于其他ARO设置。例如,票证(ARO)希望根据其所属的票证组访问支持团队(ACO)。

我希望有两个独立的用户/组模型作为ACL请求者,彼此绑定e.x

- Users
  - User
  - Group

- Tickets 
  - Ticket
  - Ticketgroup

我不确定的是,是否可以在此规模上使用ACL组件,在同一ACL中将两个单独的用户/组模型相互绑定?

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解了这个问题,但是如果你的ARO表中有两个单独的根节点,那么它应该有效:

AllGroups
  - Group1
    - User1
    - User2
AllTickets
  -TicketGroup1
    - Ticket1
    - Ticket2

使用AclBehavior::parentNode()方法将Group模型与User模型以及TicketGroup模型绑定到Ticket模型。

然后,您可以在AclComponent类型的ACO与{{1}类型的ARO之间使用allow()的方法(check():controller/:action等)还有另一个类型为Group/User的ARO。 这将有助于分离ARO决议并避免两类群体之间的任何冲突。