我正在尝试获取域对象列表,但仅限于允许用户查看的对象。这是基于用户从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/

10-11 06:30
查看更多