protected <T extends Any<?>> List<T> buildResult(final List<Object> raw, final AnyTypeKind kind) { List<T> result = new ArrayList<>(); raw.stream().map(anyKey -> anyKey instanceof Object[] ? (String) ((Object[]) anyKey)[0] : ((String) anyKey)). forEachOrdered(actualKey -> { @SuppressWarnings("unchecked") T any = kind == AnyTypeKind.USER ? (T) userDAO.find(actualKey) : kind == AnyTypeKind.GROUP ? (T) groupDAO.find(actualKey) : (T) anyObjectDAO.find(actualKey); if (any == null) { LOG.error("Could not find {} with id {}, even if returned by native query", kind, actualKey); } else if (!result.contains(any)) { result.add(any); } }); return result; }
@Transactional public Set<SyncopeGrantedAuthority> getAuthorities(final String username) { Set<SyncopeGrantedAuthority> authorities; if (anonymousUser.equals(username)) { authorities = ANONYMOUS_AUTHORITIES; } else if (adminUser.equals(username)) { authorities = getAdminAuthorities(); } else { User user = userDAO.findByUsername(username); if (user == null) { throw new UsernameNotFoundException("Could not find any user with id " + username); } authorities = getUserAuthorities(user); } return authorities; }
@Transactional(readOnly = true) @Override public Set<ExternalResource> getAllResources(final Any<?> any) { Set<ExternalResource> resources = new HashSet<>(); if (any instanceof User) { resources.addAll(userDAO.findAllResources((User) any)); } else if (any instanceof Group) { resources.addAll(((Group) any).getResources()); } else if (any instanceof AnyObject) { resources.addAll(anyObjectDAO.findAllResources((AnyObject) any)); } return resources; }
@PreAuthorize("isAuthenticated() and not(hasRole('" + StandardEntitlement.ANONYMOUS + "'))") @Transactional(readOnly = true) public List<GroupTO> own() { if (adminUser.equals(AuthContextUtils.getUsername())) { return Collections.emptyList(); } return userDAO.findAllGroups(userDAO.findByUsername(AuthContextUtils.getUsername())).stream(). map(group -> binder.getGroupTO(group, true)).collect(Collectors.toList()); }
@Transactional(readOnly = true) @Override public List<Group> findOwnedByUser(final String userKey) { User owner = userDAO.find(userKey); if (owner == null) { return Collections.<Group>emptyList(); } StringBuilder queryString = new StringBuilder("SELECT e FROM ").append(anyUtils().anyClass().getSimpleName()). append(" e WHERE e.userOwner=:owner "); userDAO.findAllGroupKeys(owner).forEach(groupKey -> { queryString.append("OR e.groupOwner.id='").append(groupKey).append("' "); }); TypedQuery<Group> query = entityManager().createQuery(queryString.toString(), Group.class); query.setParameter("owner", owner); return query.getResultList(); }
@Override public void delete(final String key) { SecurityQuestion securityQuestion = find(key); if (securityQuestion == null) { return; } userDAO.findBySecurityQuestion(securityQuestion).forEach(user -> { user.setSecurityQuestion(null); user.setSecurityAnswer(null); userDAO.save(user); }); entityManager().remove(securityQuestion); } }
switch (intAttrName.getField()) { case "key": User byKey = userDAO.find(transformed); if (byKey != null) { result.add(byKey.getUsername()); User byUsername = userDAO.findByUsername(transformed); if (byUsername != null) { result.add(byUsername.getUsername()); result.addAll(userDAO.findByPlainAttrValue(intAttrName.getSchemaName(), value, false).stream(). map(User::getUsername).collect(Collectors.toList())); break; result.addAll(userDAO.findByDerAttrValue(intAttrName.getSchemaName(), transformed, false).stream(). map(User::getUsername).collect(Collectors.toList())); break;
for (int i = 0; user == null && i < authAttrValues.size(); i++) { if ("username".equals(authAttrValues.get(i))) { user = userDAO.findByUsername(authentication.getName()); } else { AttributeCond attrCond = new AttributeCond(AttributeCond.Type.EQ); userDAO.save(user);
@Override public PropagationByResource update(final User toBeUpdated, final UserPatch userPatch) { User user = userDAO.save(toBeUpdated); Collection<String> currentResources = userDAO.findAllResourceKeys(user.getKey()); Collection<ExternalResource> resources = userDAO.findAllResources(user); reasons.put(resource.getKey(), new HashSet<>(Collections.singleton(user.getKey()))); }); userDAO.findAllGroupKeys(user).forEach(group -> { groupDAO.findAllResourceKeys(group).forEach(resource -> { if (!reasons.containsKey(resource)) { }); Pair<Set<String>, Set<String>> dynGroupMembs = userDAO.saveAndGetDynGroupMembs(user); userDAO.save(user); return propByRes;
derAttrHandler.getValues(user), virAttrValues, userDAO.findAllResources(user), details); userTO.getDynRealms().addAll(userDAO.findDynRealms(user.getKey())); userDAO.findDynRoles(user.getKey()).stream().map(Entity::getKey).collect(Collectors.toList())); userTO.getPrivileges().addAll(userDAO.findAllRoles(user).stream(). flatMap(role -> role.getPrivileges().stream()).map(Entity::getKey).collect(Collectors.toSet())); userDAO.findDynGroups(user.getKey()).stream().map(group -> { return new MembershipTO.Builder(). group(group.getKey(), group.getName()).
User user = userDAO.findByUsername(intAttrName.getRelatedUser()); if (user == null || user.getRelationships(groupableRelatable.getKey()).isEmpty()) { LOG.warn("No relationship for {} in {}, ignoring", LOG.warn("Invalid application: {}", intAttrName.getPrivilegesOfApplication()); } else { userDAO.findAllRoles((User) reference).stream(). flatMap(role -> role.getPrivileges(application).stream()). forEach(privilege -> {
@PreAuthorize("isAuthenticated() and not(hasRole('" + StandardEntitlement.MUST_CHANGE_PASSWORD + "'))") public ProvisioningResult<UserTO> selfStatus(final StatusPatch statusPatch, final boolean nullPriorityAsync) { statusPatch.setKey(userDAO.findKey(AuthContextUtils.getUsername())); Pair<String, List<PropagationStatus>> updated = setStatusOnWfAdapter(statusPatch, nullPriorityAsync); return afterUpdate( binder.returnUserTO(binder.getUserTO(updated.getKey())), updated.getRight(), Collections.<LogicActions>emptyList(), false, Collections.<String>emptySet()); }
@Transactional(readOnly = true) @Override public UserTO getUserTO(final String key) { return getUserTO(userDAO.authFind(key), true); }
NumbersInfo numbersInfo = new NumbersInfo(); numbersInfo.setTotalUsers(userDAO.count()); numbersInfo.getUsersByRealm().putAll(userDAO.countByRealm()); numbersInfo.getUsersByStatus().putAll(userDAO.countByStatus());
@Override public void delete(final AnyObject anyObject) { groupDAO.removeDynMemberships(anyObject); dynRealmDAO.removeDynMemberships(anyObject.getKey()); findARelationships(anyObject).forEach(relationship -> { relationship.getLeftEnd().getRelationships().remove(relationship); save(relationship.getLeftEnd()); entityManager().remove(relationship); }); findURelationships(anyObject).forEach(relationship -> { relationship.getLeftEnd().getRelationships().remove(relationship); userDAO.save(relationship.getLeftEnd()); entityManager().remove(relationship); }); entityManager().remove(anyObject); publisher.publishEvent(new AnyDeletedEvent( this, AnyTypeKind.ANY_OBJECT, anyObject.getKey(), anyObject.getName(), AuthContextUtils.getDomain())); }
private int count() { return StringUtils.isBlank(conf.getMatchingCond()) ? userDAO.count() : searchDAO.count(SyncopeConstants.FULL_ADMIN_REALMS, SearchCondConverter.convert(conf.getMatchingCond()), AnyTypeKind.USER); }
switch (intAttrName.getField()) { case "key": User byKey = userDAO.find(transformed); if (byKey != null) { result.add(byKey.getUsername()); User byUsername = userDAO.findByUsername(transformed); if (byUsername != null) { result.add(byUsername.getUsername()); result.addAll(userDAO.findByPlainAttrValue(intAttrName.getSchemaName(), value, false).stream(). map(User::getUsername).collect(Collectors.toList())); break; result.addAll(userDAO.findByDerAttrValue(intAttrName.getSchemaName(), transformed, false).stream(). map(User::getUsername).collect(Collectors.toList())); break;
for (int i = 0; user == null && i < authAttrValues.size(); i++) { if ("username".equals(authAttrValues.get(i))) { user = userDAO.findByUsername(authentication.getName()); } else { AttributeCond attrCond = new AttributeCond(AttributeCond.Type.EQ); userDAO.save(user);
&& StringUtils.isNotBlank(provision.get().getMapping().getConnObjectLink())) { User user = userDAO.find(task.getEntityKey()); if (user != null) { List<String> groupConnObjectLinks = new ArrayList<>(); userDAO.findAllGroupKeys(user).forEach(groupKey -> { Group group = groupDAO.find(groupKey); if (group != null && groupDAO.findAllResourceKeys(groupKey).contains(task.getResource().getKey())) {