ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

GroupのTransactionでメモ。

グループ一覧・情報の取得にはdaoのGroupではなくて、TransactionのGroupを叩く事。Transactionのfind_by_id(), find_allはエラーは発生しない。只、アクセス制御に引っ掛かればそのデータを返さないだけ。
find_all()は基本的にgroup権限であれば全て取得する。その先、自分がownerであるもののみ編集・削除可能となるが、一応Transactionレベルでもその制御は入れるが(Warningレベルとなる)、そもそも画面遷移の段階で、XhwlayのGuardで弾くので編集・削除画面に到達できない。そのため、Transactionレベルでのrole権限チェックは、かならフェイルセーフ的な意味合いになる。role権限、ownerチェックなどは、Xhwlayが適用できるマスタ画面であれば、基本的にGuardで制御する。例えばCategoryの場合は仕方ないし、そもそも全ユーザーに対して全カテゴリが閲覧可能であることから、チェックは基本的に手動(Transaction側では入れない・・・というか、まだ入れない)にしておく。将来的にはCategoryのTransactionに、そのあたりのエラー制御も入れるかも。つまり、Xhwlayが使えない場合に於いても、role権限チェックやOwnerチェックは基本的にはTransaction/Daoを「呼ぶ側」で予め行っておくものである。Transactionレベルで保証するのはあくまでもフェイルセーフとなる。
というか、どちらかというとTransactionのfind_XX()系のテストの為、の意味合いもあるかも・・・。