"CakePHP"に関連付けられた記事
CakePHPのコントローラーでプラグインのモデルを使う場合
CakePHPです。
コントローラーでプラグインのモデルを使う場合は、Users.Userのようなプラグイン記法に則って書かないとダメ。
普通のモデルのように書くとClassRegistryに登録される際、実装が見つからないため、AppModelのインスタンスとして登録されてしまう。
CakePHPのプレフィックスルーティングでアクセス制御を行う
CakePHPではユーザーのロールによるアクセス制御を行うために、Aclコンポーネントが用意されています。
AclコンポーネントではDbAcl、IniAcl、PhpAclの3種類のクラスが用意されていて、
それぞれ、ACLをデータベースに格納、iniファイルに記述、PHPファイルに記述というかんじです。
しかし、CookbookのACLを制御するシンプルなアプリケーションを読むかぎり、制御リストに一個づつcontrollerやactionを指定していくようで、ちょっとめんどくさいです。
そこで、プレフィックスルーティングを使ってアクセス制御を行ってみます。
プレフィックスルーティングとは、コントローラーをbakeするときに「Would you like to create the methods for admin routing?」と聞かれるやつです。
アクセス制御を行いたいURLが/adminとか/manager以下のみの場合は簡単に設定できるので有効です。
今回はroleをadminとmanagerの2つに設定して、/admin以下はadminのみ、/manager以下はmanagerのみがアクセスできるようにします。