最近やっとまともにACLをやり始めたnojimageです。こんにちは。
さて、ACLのACOを生成するのに便利なツールがCookbookに紹介されています。
このツールを使うと、開発中のアプリケーションのControllerクラスから、各actionを抽出し、ACOテーブルに追加していってくれるとても便利な関数なのですが、ちょっとばかし問題があるためそのままでは使えません。
[ad]
どこに問題があるの?
_getPluginControllerNames() メソッドに問題があります。
- プラグイン名の処理にInflector::humanize()を使用している
- これはAuthコンポーネントの処理に合わせるならInflector::camelize()を使用しなければなりません。
- プラグインの抽出場所が APP/plugins 固定
- /pluginsなどに置いたプラグインのコントローラは見つけてくれません。
というわけで修正してみました。
gist: 433926 - CakePHP An Automated tool for creating ACOs fix- GitHub
おまけ
ACOを削除したい場合はこちらが参考になるかもしれません。 "ACLにおけるACO削除の自動化" フォーラム - CakePHP Users in Japan