我正在尝试获取域对象列表,但仅限于允许用户查看的对象。这是基于用户从Spring Security授予的角色。
我想在 Controller 中执行的操作类似于
[reportInstanceList: Report.list(params).sort{it.name}]
但是只在哪里得到报告
Report.role = SecurityContextHolder.getContext().getAuthentication().getAuthorities()
我在另一个服务类中有Spring安全性方面的内容,但是为了简单起见,在这里将其内联。
有没有一种方法可以指示GORM仅提取角色匹配的记录?
最佳答案
就像是:
def reports = Report.createCriteria().list( params ) {
'in'( "role", SpringSecurityUtils.principalAuthorities )
}
[ reportInstanceList: reports, totalCount: reports.totalCount ]
应该管用...
关于grails - GORM按属性获取域对象列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18108049/