CakePHP ACOの生成を自動化する関数の修正

標準

最近やっとまともにACLをやり始めたnojimageです。こんにちは。

さて、ACLのACOを生成するのに便利なツールがCookbookに紹介されています。

10.2.6 ACO の作成を自動化するツール

このツールを使うと、開発中のアプリケーションの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

コメントを残す

Page optimized by WP Minify WordPress Plugin