按UserService中的角色过滤jhipster用户

时间:2018-10-18 01:25:52

标签: jhipster

我正在尝试按特定角色过滤jhipster中的用户。该过滤器是否会出现在UserService类(本质上是getNonAdminUsers方法)中?默认情况下,UserService调用getAllManagedUsers,该方法基本上返回除我之外的每个用户。很好,但是我的目标是返回不是ROLE_ADMIN用户的每个人。 这是现有的“核心”。

@Transactional(readOnly = true) public Page<UserDTO> getAllManagedUsers(Pageable pageable) { return userRepository.findAllByLoginNot(pageable,Constants.ANONYMOUS_USER).map(UserDTO::new); }

2 个答案:

答案 0 :(得分:0)

我认为这不是最好的方法

<script>
$(function(){
$('.bxslider').bxSlider({
captions: true,
speed: 900,
pause: 7000,
startSlide: 0,
infiniteLoop: true,
auto: true,
video: true,
touchEnabled: false,
pager: false,

});
});

if ( $(window).width() < 768) {
var myslider = $('.bxslider').bxSlider({
    ...
    maxSlides       : 1,
});  
}

else {
var myslider = $('.bxslider').bxSlider({
    ...
    maxSlides       : 4,
});
}
</script>

答案 1 :(得分:0)

可以使用规范(org.springframework.data.jpa.domain.Specification);

首先在您的UserRepository中添加新的方法签名

Page<User> findAll(Specification<User> where, Pageable pageable);

然后在UserService中添加规范:

static Specification<User> isNotAdmin(Authority role) {
    return (obj, cq, cb) -> cb.isNotMember(role, obj.get("authorities"));
}

然后修改您的方法以按您要排除的角色进行过滤:

@Transactional(readOnly = true)
public Page<UserDTO> getAllManagedUsers(Pageable pageable) {
    Authority admin = authorityRepository.findById(AuthoritiesConstants.ADMIN).get();
    return userRepository.findAll(Specification.where(isNotAdmin(admin)), pageable).map(UserDTO::new);
}