リポジトリ パターンを使用して、NHibernate を使用してデータベースにクエリを実行しています。これにより、次のようなことが非常に簡単になります。
public T GetById(int id) {...}
しかし、誰かが許可されていないものを確認するためにクエリ文字列をいじり始めた場合、それはあまり役に立ちません。
さらに複雑なことに、一部のオブジェクトは、承認を実行する必要がある親オブジェクトの深くネストされた子です。
たとえば、ブログ --> 作成者 --> 投稿 --> コメント。この不自然な例では、作成者が自分の投稿とそれらの投稿に対するコメントを編集できるようにしますが、他の作成者の投稿を表示または編集することはできません。投稿が投稿者のものであることを確認するのは簡単ですが、コメントが投稿者のものであることを確認するのは少し難しいです。より深くなる例がいくつかあります。
では、(モデルまたはリポジトリで) 承認を行うにはどうすればよいでしょうか?