1

システムにさまざまな種類のドキュメントがあるとします。ユーザーの役割、所有権、ユーザーとオブジェクトの関連性の 3 つの側面に基づいて、それらへのアクセスを制限したいと考えています。たとえば、ROLE_DOCUMENTTYPE1READ はユーザーにドキュメントを読む権限を付与します (ROLE_DOCUMENTTYP1WRITE などの他のロールは RW 権限を付与します)。ドキュメントへの接続の存在 (ドキュメントの 1:M related_users フィールドにユーザーがいる場合) は、ドキュメントにコメントを追加する権限をユーザーに与えます。また、ユーザーがオブジェクトの所有者である場合、オブジェクトを完全に編集できます。

コントローラーに簡単に実装したり、特性などを作成したりすることもできますが、通常の CRUD だけでなく、特定の田畑。そのようなことを通常どのように行うべきか知りたいです。この状況で役立つアーキテクチャ パターンがいくつかあるのではないでしょうか。今、すでに言ったように、ユーザーがエンティティに関連しているかどうか、または彼がその所有者であるか、ロールを持っているかどうか、すべてのアクションをチェックします。

4

1 に答える 1

1

JMSSecurityExtraBundle とExpression-based Authorization Language をご覧ください。複雑なアクセス決定チェックを実行できます。生の PHP にコンパイルされるため、組み込みのボーターよりもはるかに高速です。

于 2013-09-09T18:16:57.157 に答える