PHPとZend_ACLを使用して、非常に柔軟な権限システムを作成したいと思います。特定のタイプのすべてのオブジェクトと、それらのオブジェクトのインスタンスにアクセス許可を割り当てられるようにしたい。オブジェクトの特定のインスタンスが照会され、それがリソースツリーに存在しない場合は、「generic」オブジェクトに設定された権限を使用できます。私の問題は、これをネストする必要があり、Zend_ACLがサポートしていない多重継承なしでそれを行う方法を理解できないことです。
例はこれです。学部、コース、イベントを備えたオンライン学習サイト。各イベントはコースに属し、各コースは教員に属します。各学部の役割がすべてのコース(および継承によるイベント)にアクセスできるようにしたいと思いますが、特定の学部はその資料を非公開にしたいと考えています。そのため、リソースツリーの構造に各学部のリソースノードを作成し、各コースにデフォルトのアクセス許可を与える汎用コースノードから分岐するのではなく、各学部に属する各コースを学部ノードから分岐させます。新しい構造で、一般的なコースの権限をどのように適用できますか?親コースが読み取り可能である場合にのみ各イベントを読み取り可能にしたいが、各イベントにデフォルトの権限セットを適用したい場合は、コースの下のイベントにも同じことが言えます。
別のシステムに関する質問、コメント、提案は大歓迎です。