最近やっとまともにACLをやり始めたnojimageです。こんにちは。
さて、ACLのACOを生成するのに便利なツールがCookbookに紹介されています。
このツールを使うと、開発中のアプリケーションのControllerクラスから、各actionを抽出し、ACOテーブルに追加していってくれるとても便利な関数なのですが、ちょっとばかし問題があるためそのままでは使えません。
どこに問題があるの?
_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