私は、親子関係を使ってCRUDのACLをどのように構造化すればよいのだろうかと思います。親子関係を使ったZend_AclとCRUDの構造
例:プロジェクトにはTodoListsがあります。 TodoListsは
トドスプロジェクトのための様々なコントローラーアクションは/
- /プロジェクト/
- /プロジェクト/編集/ {projId}
- /プロジェクトを追加//{projId}
- を削除ありき藤堂 - リストの追加//{} projId
- /TODO-リスト/編集/ {} todoListId
- ...
階層を下っていくのが分かるように、いくつかのアクションは自分自身を参照していないidsを持っています(例:藤堂 - リストコントローラ - > TODOリストのリソース)が、その親へ
私はセットアップ(一般)を持っているとしてだから、それはこの
- ACLコントローラープラグイン(をpreDispatch)
- セットのように見えます要求のparam「ID」が設定されている場合は、実際のentiを取得するアクション名
- に名前
- 設定権限をコントローラにユーザーまたは「認証されていない」をLOGGEDINする役割
- セットリソースty(私はDoctrine ORMを使用しています)は
Zend_Acl_Resource_Interface
を実装しています。ここでは、合併症が発生します。私は通常、コントローラー名からリソースを取得しますが、たとえば、/todo-lists/add
の代わりに親エンティティを取得する必要があります(プロジェクト)。この設定で、私は「addTodoList」のようなものに特権を移す必要があります。この方法では、プロジェクトaclアサーションクラスはTodoListsのものにする必要があります。コントローラの動作& ACLロジックの間にも切断があります。それは大丈夫ですか?
たぶん私はProjectsControllerの代わりTodoListsControllerにaddTodoListActionを持っている必要がありますか?これは私のACLコードを簡素化する、私は確認し、リソース/特権を変更する必要はありません?私はただリクエストパラメータ(Controller &アクション名)から直接これらを取ることができます。
どのようにACLをこのように設定しますか?