Все Вы неправы. Считайте вопрос. Ответ:
Использование Singleton, если:
, не используют Singleton если:
, Как создать лучший одиночный элемент:
Я полагаю, ваш класс домена User содержит ссылку hasMany на ваш класс Role, например:
class User {
static hasMany = [authorities: Role]
//....
}
class Role {
static belongsTo = User
String description
String authority
//....
}
Итак, ваш код для проверки ролей прост:
User user = User.get(1)
if (user.authorities.any { it.authority == "ROLE_ADMIN" }) {
// user is a admin
}
Можно найти обновленный ответ здесь .
Если вы используете подключаемый модуль Spring Security и хотите проверить текущего вошедшего в систему пользователя:
import org.codehaus.groovy.grails.plugins.springsecurity.AuthorizeTools
. . .
if (AuthorizeTools.ifAllGranted("ROLE_ADMIN")){
//user is an admin
}