Mongodb DomainClass.where查询、授权和筛选

Mongodb DomainClass.where查询、授权和筛选,mongodb,grails,gorm,Mongodb,Grails,Gorm,我正在研究使用Grails和使用GORM访问MongoDB 假设我有一个名为BlogPost的域类,但特定用户只允许查看某些blog文章 现在,在控制器操作中,我可以轻松地执行类似于BlogPost.where{}的操作,但这将返回所有的blog帖子 我需要一个集中的机制来过滤控制器执行查询时返回的域对象 使用的插件是您可以在域类中使用GORM事件“onLoad”,并在那里应用过滤器。例如: Class BlogPost{ String content String view

我正在研究使用Grails和使用GORM访问MongoDB

假设我有一个名为BlogPost的域类,但特定用户只允许查看某些blog文章

现在,在控制器操作中,我可以轻松地执行类似于BlogPost.where{}的操作,但这将返回所有的blog帖子

我需要一个集中的机制来过滤控制器执行查询时返回的域对象

使用的插件是

您可以在域类中使用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
} 
}
请看这里:

或者,您可以在服务类或域类中定义方法来应用过滤器。比如说,

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

}
...
实际上,你的问题涉及的范围很广。若问题再具体一点,你们会得到更好的建议