public boolean contains(final S schema) { if (forSelfContains(schema)) { return true; } return forMembershipsContains(schema); }
public boolean forMembershipsContains(final Group group, final S schema) { return getForMembership(group).stream().anyMatch(s -> s.equals(schema)); }
@SuppressWarnings("unchecked") public <S extends Schema> AllowedSchemas<S> findAllowedSchemas(final A any, final Class<S> reference) { AllowedSchemas<S> result = new AllowedSchemas<>(); result.getForSelf().addAll((Collection<? extends S>) typeClass.getPlainSchemas()); } else if (reference.equals(DerSchema.class)) { result.getForSelf().addAll((Collection<? extends S>) typeClass.getDerSchemas()); } else if (reference.equals(VirSchema.class)) { result.getForSelf().addAll((Collection<? extends S>) typeClass.getVirSchemas()); result.getForMemberships().put(entry.getKey(), new HashSet<>()); return entry; }).forEachOrdered((entry) -> { entry.getValue().forEach(typeClass -> { if (reference.equals(PlainSchema.class)) { result.getForMemberships().get(entry.getKey()). addAll((Collection<? extends S>) typeClass.getPlainSchemas()); } else if (reference.equals(DerSchema.class)) { result.getForMemberships().get(entry.getKey()). addAll((Collection<? extends S>) typeClass.getDerSchemas()); } else if (reference.equals(VirSchema.class)) { result.getForMemberships().get(entry.getKey()). addAll((Collection<? extends S>) typeClass.getVirSchemas());
private SyncopeClientException checkMandatory(final Any<?> any, final AnyUtils anyUtils) { SyncopeClientException reqValMissing = SyncopeClientException.build(ClientExceptionType.RequiredValuesMissing); // Check if there is some mandatory schema defined for which no value has been provided AllowedSchemas<PlainSchema> allowedPlainSchemas = anyUtils.dao().findAllowedSchemas(any, PlainSchema.class); allowedPlainSchemas.getForSelf().forEach(schema -> { checkMandatory(schema, any.getPlainAttr(schema.getKey()).orElse(null), any, reqValMissing); }); if (any instanceof GroupableRelatable) { allowedPlainSchemas.getForMemberships().forEach((group, schemas) -> { GroupableRelatable<?, ?, ?, ?, ?> groupable = GroupableRelatable.class.cast(any); Membership<?> membership = groupable.getMembership(group.getKey()).orElse(null); schemas.forEach(schema -> { checkMandatory(schema, groupable.getPlainAttr(schema.getKey(), membership).orElse(null), any, reqValMissing); }); }); } return reqValMissing; }
@Override public List<String> getValues(final Any<?> any, final VirSchema schema) { if (!anyUtilsFactory.getInstance(any).dao(). findAllowedSchemas(any, VirSchema.class).forSelfContains(schema)) { LOG.debug("{} not allowed for {}", schema, any); return Collections.emptyList(); } List<String> result = getValues(any, Collections.singleton(schema)).get(schema); return result == null ? Collections.emptyList() : result; }
@Override public Map<VirSchema, List<String>> getValues(final Any<?> any) { return getValues( any, anyUtilsFactory.getInstance(any).dao().findAllowedSchemas(any, VirSchema.class).getForSelf()); }
LOG.warn("Ignoring read-only {} {}", VirSchema.class.getSimpleName(), vAttr.getSchema()); } else if (anyUtilsFactory.getInstance(any).dao(). findAllowedSchemas(any, VirSchema.class).contains(schema) && virtualResources.contains(schema.getProvision().getResource().getKey())) {
@Override public String getValue(final Any<?> any, final DerSchema schema) { if (!anyUtilsFactory.getInstance(any).dao(). findAllowedSchemas(any, DerSchema.class).forSelfContains(schema)) { LOG.debug("{} not allowed for {}", schema, any); return null; } return getValues(any, Collections.singleton(schema)).get(schema); }
@Override public Map<DerSchema, String> getValues(final Any<?> any) { return getValues( any, anyUtilsFactory.getInstance(any).dao().findAllowedSchemas(any, DerSchema.class).getForSelf()); }
public boolean contains(final String schema) { if (forSelfContains(schema)) { return true; } return forMembershipsContains(schema); }
public boolean forMembershipsContains(final Group group, final String schema) { return getForMembership(group).stream().anyMatch(new KeyMatches(schema)); }
if (attr != null && !allowedPlainSchemas.forSelfContains(attr.getSchema().getKey())) { return raiseNotAllowedViolation(context, attr.getSchema().getKey(), null); for (Membership<?> membership : ((GroupableRelatable<?, ?, ?, ?, ?>) any).getMemberships()) { for (PlainAttr<?> attr : ((GroupableRelatable<?, ?, ?, ?, ?>) any).getPlainAttrs(membership)) { if (attr != null && !allowedPlainSchemas.forMembershipsContains( membership.getRightEnd(), attr.getSchema().getKey())) {
@Override public List<String> getValues(final Any<?> any, final Membership<?> membership, final VirSchema schema) { if (!anyUtilsFactory.getInstance(any).dao(). findAllowedSchemas(any, VirSchema.class).getForMembership(membership.getRightEnd()).contains(schema)) { LOG.debug("{} not allowed for {}", schema, any); return Collections.emptyList(); } List<String> result = getValues(any, Collections.singleton(schema)).get(schema); return result == null ? Collections.emptyList() : result; }
@Override public String getValue(final Any<?> any, final Membership<?> membership, final DerSchema schema) { if (!anyUtilsFactory.getInstance(any).dao(). findAllowedSchemas(any, DerSchema.class).getForMembership(membership.getRightEnd()).contains(schema)) { LOG.debug("{} not allowed for {}", schema, any); return null; } return getValues(any, Collections.singleton(schema)).get(schema); }
@Override public Map<VirSchema, List<String>> getValues(final Any<?> any, final Membership<?> membership) { return getValues( any, anyUtilsFactory.getInstance(any).dao().findAllowedSchemas(any, VirSchema.class). getForMembership(membership.getRightEnd())); }
@Override public Map<DerSchema, String> getValues( final GroupableRelatable<?, ?, ?, ?, ?> any, final Membership<?> membership) { return getValues( any, membership, anyUtilsFactory.getInstance(any).dao().findAllowedSchemas(any, DerSchema.class). getForMembership(membership.getRightEnd())); }