我的问题是:(如何?)我可以使用 Spring Security 插件将我的用户的“权限”存储在 Grails 的用户类中吗?
我给出了以下 SQL 结构:
用户表:
...
varchar(255): username
...
int(2) rank: (refers to Rank table)
排名表:
int(11): id
varchar(25): rank_name
我可以配置我的域类以使用该结构而不是典型的“用户、权限、用户权限多对多”模式吗?
等级(id)是分层的,这意味着等级为 4 的用户从等级为 3 的用户那里获得了所有“权限”等。
编辑:我只是在用户域中将 getAuthorities 方法替换为以下内容:
Set<Permission> getAuthorities() {
Authority.findAllById(this.rank)
// instead of: UserAuthority.findAllByUser(this)*.permission
}