1.3標準TweetCakePHPでは、モデルオブジェクトでアクセスコントロールを行う場合にAclビヘイビアを使用します。標準のAclビヘイビアは若干クセがあり、設定しづらいものとなっています。今回はAclBehaviorを拡張し、ACLの機能をモデルへ手早く組み込むことが出来るようにする、AclPlusBehaviorを紹介します。CakePHPに同梱されているAclビヘイビアを使う場合、以下のようにモデルを定義します。$data['User']['group_id']));}}}ビヘイビアの’type’パラメータは、モデルがAROの場合には’reguester’、ACOの場合には’controlled’と指定するようになっており、ちょっと分かりにくいです。上位オブジェクトの取得のためにparentNodeメソッドを定義する必要があります。このあたりの面倒くささを解決するのがAclPlusビヘイビアになります。AclPlusビヘイビアのポイントtypeパラメータへ’requester’または’controlled’の代わりに、’aro‘または’aco‘と書いて型を指定できるようになります。parentNodeメソッドを提供します。ビヘイビアのパラメータにモデル名、外部キーを指定するだけで親データを取得できます。指定しない場合はbelongsToから取得を試みます。aliasFieldパラメータを追加します。aliasFieldに指定されたフィールド名のデータがACLのエイリアスとして使用されます。上記の例であれば、下記のように書き換えることができます。上位モデルが無い場合は、parentNodeTypeにrootを指定。上位モデルが無い場合は、parentNodeTypeにrootを指定。usernameフィールドの値をAROのエイリアスとして指定する));}これだけで、モデルにACLの機能を組み込むことが出来るようになります。'aco');}といったように、指定します。ダウンロードAclPlusBehaviorは、こちらから入手してください。配下へ設置すれば利用可能になります。1.3.2のコードをベースにしています。1.2系での動作は確認していません。質問・要望等について質問、要望等は、@nojimage宛にささやいていただくか、この記事のコメント欄にお寄せください。1.3.8のコードをベースに書き直しています。