У меня есть эти объекты:Объединение субъектов с @ManyToMany отношений
- пользователя
- Роль
- Разрешение
Пользователь имеет множество ролей и роль имеет множество разрешений.
Каков наилучший способ получить набор разрешений пользователя?
Мне нужен способ проверить, имеет ли Пользователь определенное разрешение.
Это то, что я до сих пор:
public boolean hasPermission(String permissionString) {
if (!authenticated) return false;
for (Role role : user.getRoles()) {
for (Permission permission : role.getPermissions()) {
if (permission.getName().equals(permissionString)) {
return true;
}
}
}
return false;
}
Второй, но связанный с этим вопрос - где я должен поставить код, который проверяет, является ли пользователь имеет особое разрешение?
- В объекте пользователя?
- В UserBean EJB?
- В аутентифицированном JSF управляемом компоненте?
Вот как это сделать. Что за вопрос? С информацией, которую вы предоставили, и иерархией отношений, это единственный способ прокрутки. Где вам нужна помощь? –
@ KarthikR Было просто интересно, будет ли это очень неэффективно, вместо JOIN на таблицах с использованием EJBQL или подобных. – mushroom