0

Grails の使用と、GORM を使用した MongoDB へのアクセスを検討しています。

たとえば、BlogPost という名前のドメイン クラスがあるとしますが、特定のユーザーは特定のブログ投稿しか見ることができません。

ここで、コントローラー アクションで、BlogPost.where {} のようなことを簡単に行うことができますが、それはすべてのブログ投稿を返します。

コントローラーがクエリを実行したときに返されるドメイン オブジェクトをフィルター処理する集中型メカニズムが必要です。

使用するプラグインはhttp://grails.org/plugin/mongodbです

4

1 に答える 1

0

ドメインクラスでGORMイベント「onLoad」を使用して、そこにフィルターを適用できます。例えば:

Class BlogPost{
   String content    
   String viewableByRole //it might be another domain for roles/string/enum as per your requirement
   ....
   def onLoad() {
       //apply your condition here
} 
}

こちらをご覧ください: GORM イベント

または、サービス クラスまたはドメイン クラスでメソッドを定義してフィルターを適用することもできます。例えば、

...
   def getAllPost() {
       def currentRole = take_role_from_security_plugin_like_shiro_or_spring_security_session etc
       return BlogPost.findAllByViewableByRole(currentRole)               

}
...

実際、あなたの質問には大きな範囲が含まれています。質問がもう少し具体的であれば、より良い提案を得ることができます。

于 2013-05-17T09:58:19.123 に答える