Grails 中 Shiro 插件的正确标准
Proper Criteria for Shiro plugin in Grails
我有 Shiro 域 类 如下:
class ShiroUser {
String email
String password
static hasMany = [ roles: ShiroRole, permissions: String ]
static constraints = {
email(nullable: false, blank: false, unique: true)
}
}
class ShiroRole {
String name
static hasMany = [ users: ShiroUser, permissions: String ]
static belongsTo = ShiroUser
static constraints = {
name(nullable: false, blank: false, unique: true)
}
}
我收到了来自 params.email 的 ShiroUser 的电子邮件。我想使用 criteria() 找出 belongsTo ShiroUser 的权限。
我尝试了下面的代码,但是没有成功。
def criteria= permissions.createCriteria().listDistinct {
ShiroRole{
ShiroUser{
eq("email", params.email)
}
}
}
您的条件建立有误。我会保持简单并像这样:
def permissions = ShiroUser.findByEmail( params.email )?.roles*.permissions.flatten() as Set
如果您想坚持标准:
def permissions = ShiroRole.createCriteria().listDistinct {
projections{
property 'permissions'
}
users{
eq "email", params.email
}
}
我有 Shiro 域 类 如下:
class ShiroUser {
String email
String password
static hasMany = [ roles: ShiroRole, permissions: String ]
static constraints = {
email(nullable: false, blank: false, unique: true)
}
}
class ShiroRole {
String name
static hasMany = [ users: ShiroUser, permissions: String ]
static belongsTo = ShiroUser
static constraints = {
name(nullable: false, blank: false, unique: true)
}
}
我收到了来自 params.email 的 ShiroUser 的电子邮件。我想使用 criteria() 找出 belongsTo ShiroUser 的权限。
我尝试了下面的代码,但是没有成功。
def criteria= permissions.createCriteria().listDistinct {
ShiroRole{
ShiroUser{
eq("email", params.email)
}
}
}
您的条件建立有误。我会保持简单并像这样:
def permissions = ShiroUser.findByEmail( params.email )?.roles*.permissions.flatten() as Set
如果您想坚持标准:
def permissions = ShiroRole.createCriteria().listDistinct {
projections{
property 'permissions'
}
users{
eq "email", params.email
}
}