モデル追加した場合のACL設定追加方法

コントローラー単位でACLを設定している場合で、モデル(コントローラ)を新たに追加した際にはACLの設定追加が必要なので、その方法のメモ。

コントローラー単位でACLを設定の実装方法はこちら


acoの現状。
controllersの下にUsersとGroupsがある。

[cake@cake console]$ ./cake acl view aco
Aco tree:
---------------------------------------------------------------
  [1]controllers
    [2]Users
    [3]Groups

  [4]prefix
(略)

controllersの下に、新たなコントローラ名を追加する。
これを設定しないと、アクセスで無限ループに陥る場合あり*1

[cake@cake console]$ ./cake acl create aco controllers Systems
New Aco 'Systems' created.

[cake@cake console]$ ./cake acl view aco
Aco tree:
---------------------------------------------------------------
  [1]controllers
    [2]Users
    [3]Groups
    [8]Systems

controllers全体にアクセス権限のあるユーザなら、これだけでアクセスOK。


一般ユーザのように、コントローラ単位でアクセス許可を出してるユーザ用には、以下のようにpermissionを設定する。

[cake@cake console]$ ./cake acl grant Group.4 Systems read


mysql> SELECT * FROM aros_acos ORDER BY id DESC LIMIT 1\G
*************************** 1. row ***************************
     id: 22
 aro_id: 4
 aco_id: 8
_create: 0
  _read: 1
_update: 0
_delete: 0
1 row in set (0.00 sec)

*1:特にSuperAdministrator権限