|
@@ -36,6 +36,10 @@ import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -56,11 +60,16 @@ public class UserService {
|
|
|
|
|
|
|
|
public Page<User> all(PageQuery pageQuery) {
|
|
public Page<User> all(PageQuery pageQuery) {
|
|
|
Specification<User> specification = JpaUtils.toSpecification(pageQuery, User.class);
|
|
Specification<User> specification = JpaUtils.toSpecification(pageQuery, User.class);
|
|
|
- if (pageQuery.getQuery().containsKey("hasRole")) {
|
|
|
|
|
- String roleName = (String) pageQuery.getQuery().get("hasRole");
|
|
|
|
|
- specification = specification.and((Specification<User>) (root, criteriaQuery, criteriaBuilder) ->
|
|
|
|
|
- criteriaBuilder.isMember(Authority.get(AuthorityName.valueOf(roleName)), root.get("authorities")));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ specification = specification.and((Specification<User>) (root, criteriaQuery, criteriaBuilder) -> {
|
|
|
|
|
+ List<Predicate> and = new ArrayList<>();
|
|
|
|
|
+ and.add(criteriaBuilder.notEqual(root.get("id"), 1L));
|
|
|
|
|
+ if (pageQuery.getQuery().containsKey("hasRole")) {
|
|
|
|
|
+ String roleName = (String) pageQuery.getQuery().get("hasRole");
|
|
|
|
|
+ and.add(criteriaBuilder.isMember(Authority.get(AuthorityName.valueOf(roleName)), root.get("authorities")));
|
|
|
|
|
+ }
|
|
|
|
|
+ return criteriaBuilder.and(and.toArray(new Predicate[0]));
|
|
|
|
|
+ });
|
|
|
return userRepo.findAll(specification, JpaUtils.toPageRequest(pageQuery));
|
|
return userRepo.findAll(specification, JpaUtils.toPageRequest(pageQuery));
|
|
|
}
|
|
}
|
|
|
|
|
|