@PreAuthorize("hasRole('" + StandardEntitlement.GROUP_SEARCH + "')") @Transactional(readOnly = true) @Override public Pair<Integer, List<GroupTO>> search( final SearchCond searchCond, final int page, final int size, final List<OrderByClause> orderBy, final String realm, final boolean details) { int count = searchDAO.count( RealmUtils.getEffective(SyncopeConstants.FULL_ADMIN_REALMS, realm), searchCond == null ? groupDAO.getAllMatchingCond() : searchCond, AnyTypeKind.GROUP); List<Group> matching = searchDAO.search( RealmUtils.getEffective(SyncopeConstants.FULL_ADMIN_REALMS, realm), searchCond == null ? groupDAO.getAllMatchingCond() : searchCond, page, size, orderBy, AnyTypeKind.GROUP); List<GroupTO> result = matching.stream(). map(group -> binder.getGroupTO(group, details)).collect(Collectors.toList()); return Pair.of(count, result); }
findAll().stream(). filter(role -> role.getDynMembership() != null && searchDAO.matches(user, SearchCondConverter.convert(role.getDynMembership().getFIQLCond())) && !before.contains(role.getKey())). forEach(role -> {
private List<String> findByCorrelationRule( final ConnectorObject connObj, final Provision provision, final PullCorrelationRule rule, final AnyTypeKind type) { return searchDAO.search(rule.getSearchCond(connObj, provision), type).stream(). map(Entity::getKey).collect(Collectors.toList()); }
private int count() { return StringUtils.isBlank(conf.getMatchingCond()) ? userDAO.count() : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.USER); }
groups = groupDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE); } else { groups = searchDAO.search( SyncopeConstants.FULL_ADMIN_REALMS, SearchCondConverter.convert(this.conf.getMatchingCond()),
private int count() { return StringUtils.isBlank(conf.getMatchingCond()) ? groupDAO.count() : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.GROUP); }
@Transactional(readOnly = true) @Override public Pair<Integer, List<AnyObjectTO>> search( final SearchCond searchCond, final int page, final int size, final List<OrderByClause> orderBy, final String realm, final boolean details) { if (searchCond.hasAnyTypeCond() == null) { throw new UnsupportedOperationException("Need to specify " + AnyType.class.getSimpleName()); } Set<String> effectiveRealms = RealmUtils.getEffective( AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(searchCond.hasAnyTypeCond())), realm); int count = searchDAO.count(effectiveRealms, searchCond, AnyTypeKind.ANY_OBJECT); List<AnyObject> matching = searchDAO.search( effectiveRealms, searchCond, page, size, orderBy, AnyTypeKind.ANY_OBJECT); List<AnyObjectTO> result = matching.stream(). map(anyObject -> binder.getAnyObjectTO(anyObject, details)).collect(Collectors.toList()); return Pair.of(count, result); }
users = userDAO.findAll(page, AnyDAO.DEFAULT_PAGE_SIZE); } else { users = searchDAO.search( SyncopeConstants.FULL_ADMIN_REALMS, SearchCondConverter.convert(this.conf.getMatchingCond()),
keyCond.setSchema("key"); SearchCond allMatchingCond = SearchCond.getLeafCond(keyCond); int users = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.USER); int groups = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.GROUP); int anyObjects = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.ANY_OBJECT);
@Transactional @Override public void refreshDynMemberships(final Any<?> any) { findAll().forEach(dynRealm -> { Optional<? extends DynRealmMembership> memb = dynRealm.getDynMembership(any.getType()); if (memb.isPresent()) { Query delete = entityManager().createNativeQuery( "DELETE FROM " + DYNMEMB_TABLE + " WHERE dynRealm_id=? AND any_id=?"); delete.setParameter(1, dynRealm.getKey()); delete.setParameter(2, any.getKey()); delete.executeUpdate(); if (jpaAnySearchDAO().matches(any, SearchCondConverter.convert(memb.get().getFIQLCond()))) { Query insert = entityManager().createNativeQuery("INSERT INTO " + DYNMEMB_TABLE + " VALUES(?, ?)"); insert.setParameter(1, any.getKey()); insert.setParameter(2, dynRealm.getKey()); insert.executeUpdate(); } } }); }
@PreAuthorize("hasRole('" + StandardEntitlement.USER_SEARCH + "')") @Transactional(readOnly = true) @Override public Pair<Integer, List<UserTO>> search( final SearchCond searchCond, final int page, final int size, final List<OrderByClause> orderBy, final String realm, final boolean details) { int count = searchDAO.count(RealmUtils.getEffective( AuthContextUtils.getAuthorizations().get(StandardEntitlement.USER_SEARCH), realm), searchCond == null ? userDAO.getAllMatchingCond() : searchCond, AnyTypeKind.USER); List<User> matching = searchDAO.search(RealmUtils.getEffective( AuthContextUtils.getAuthorizations().get(StandardEntitlement.USER_SEARCH), realm), searchCond == null ? userDAO.getAllMatchingCond() : searchCond, page, size, orderBy, AnyTypeKind.USER); List<UserTO> result = matching.stream(). map(user -> binder.returnUserTO(binder.getUserTO(user, details))). collect(Collectors.toList()); return Pair.of(count, result); }
@Override public DynRealm saveAndRefreshDynMemberships(final DynRealm dynRealm) { DynRealm merged = save(dynRealm); // refresh dynamic memberships clearDynMembers(merged); merged.getDynMemberships().stream().map(memb -> jpaAnySearchDAO().search( SearchCondConverter.convert(memb.getFIQLCond()), memb.getAnyType().getKind())). forEachOrdered(matching -> { matching.forEach(any -> { Query insert = entityManager().createNativeQuery( "INSERT INTO " + DYNMEMB_TABLE + " VALUES(?, ?)"); insert.setParameter(1, any.getKey()); insert.setParameter(2, merged.getKey()); insert.executeUpdate(); publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, any, AuthContextUtils.getDomain())); }); }); return merged; }
keyCond.setSchema("key"); SearchCond allMatchingCond = SearchCond.getLeafCond(keyCond); int users = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.USER); int groups = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.GROUP); int anyObjects = searchDAO.count(adminRealms, allMatchingCond, AnyTypeKind.ANY_OBJECT);
filter(membCond -> jpaAnySearchDAO().matches( user, buildDynMembershipCond(membCond.getFIQLCond(), membCond.getGroup().getRealm()))).
List<User> users = searchDAO.search(SearchCond.getLeafCond(membershipCond), AnyTypeKind.USER); Collection<String> groupResourceKeys = groupDAO.findAllResourceKeys(groupKey); status.set("About to " List<AnyObject> anyObjects = searchDAO.search(SearchCond.getLeafCond(membershipCond), AnyTypeKind.ANY_OBJECT); status.set("About to " + (action == ProvisionAction.DEPROVISION ? "de" : "") + "provision "
filter(membCond -> jpaAnySearchDAO().matches( anyObject, buildDynMembershipCond(membCond.getFIQLCond(), membCond.getGroup().getRealm()))).
SearchCond cond = SearchCondConverter.convert(this.conf.getUserMatchingCond()); int total = searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.USER); int pages = (total / AnyDAO.DEFAULT_PAGE_SIZE) + 1; status.set("Processing " + total + " users: page " + page + " of " + pages); doExtract(handler, searchDAO.search( SyncopeConstants.FULL_ADMIN_REALMS, cond, SearchCond cond = SearchCondConverter.convert(this.conf.getUserMatchingCond()); int total = searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.GROUP); int pages = (total / AnyDAO.DEFAULT_PAGE_SIZE) + 1; status.set("Processing " + total + " groups: page " + page + " of " + pages); doExtract(handler, searchDAO.search( SyncopeConstants.FULL_ADMIN_REALMS, cond, int total = searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, cond, AnyTypeKind.ANY_OBJECT); int pages = (total / AnyDAO.DEFAULT_PAGE_SIZE) + 1; doExtract(handler, searchDAO.search( SyncopeConstants.FULL_ADMIN_REALMS, cond,
@Override public Role saveAndRefreshDynMemberships(final Role role) { Role merged = save(role); // refresh dynamic memberships clearDynMembers(merged); if (merged.getDynMembership() != null) { List<User> matching = searchDAO.search( SearchCondConverter.convert(merged.getDynMembership().getFIQLCond()), AnyTypeKind.USER); matching.forEach((user) -> { Query insert = entityManager().createNativeQuery("INSERT INTO " + DYNMEMB_TABLE + " VALUES(?, ?)"); insert.setParameter(1, user.getKey()); insert.setParameter(2, merged.getKey()); insert.executeUpdate(); publisher.publishEvent(new AnyCreatedUpdatedEvent<>(this, user, AuthContextUtils.getDomain())); }); } return merged; }
} else if (anyType == null || any == null || !notification.getAbout(anyType).isPresent() || searchDAO.matches( any, SearchCondConverter.convert(notification.getAbout(anyType).get().get()))) {