@JsonIgnore @Override public Optional<MembershipTO> getMembership(final String groupKey) { return memberships.stream().filter(membership -> groupKey.equals(membership.getGroupKey())).findFirst(); }
private static void diff( final MembershipTO updated, final MembershipPatch result) { // 1. plain attributes result.getPlainAttrs().addAll(updated.getPlainAttrs().stream(). filter(attrTO -> !isEmpty(attrTO)). collect(Collectors.toSet())); // 2. virtual attributes result.getVirAttrs().clear(); result.getVirAttrs().addAll(updated.getVirAttrs()); }
@Override public String getIdValue(final MembershipTO object, final int index) { return object.getGroupName(); }
public Builder group(final String groupKey, final String groupName) { instance.setGroupKey(groupKey); instance.setGroupName(groupName); return this; }
dateToMillis(membership.getPlainAttrs(), plainSchema); String groupName = membership.getGroupName(); membership.getPlainAttrs().stream().map(attr -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getPlainAttrs().add(attr); }); membership.getPlainAttrs().clear(); membership.getDerAttrs().stream().map(attr -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getDerAttrs().add(attr); }); membership.getDerAttrs().clear(); membership.getVirAttrs().stream().map((attr) -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getVirAttrs().add(attr); }); membership.getVirAttrs().clear();
private void completeUserObject(final UserTO userTO, final UserTO selfTO) { // memberships plain and virtual attrs userTO.getMemberships().forEach(updatedTOMemb -> { selfTO.getMemberships().stream(). filter(oldTOMemb -> updatedTOMemb.getGroupKey().equals(oldTOMemb.getGroupKey())). findFirst().ifPresent(oldTOMatchedMemb -> { if (!updatedTOMemb.getPlainAttrs().isEmpty()) { completeAttrs(updatedTOMemb.getPlainAttrs(), oldTOMatchedMemb.getPlainAttrs()); } if (!updatedTOMemb.getVirAttrs().isEmpty()) { completeAttrs(updatedTOMemb.getVirAttrs(), oldTOMatchedMemb.getVirAttrs()); } }); }); // plain attrs completeAttrs(userTO.getPlainAttrs(), selfTO.getPlainAttrs()); // virtual attrs completeAttrs(userTO.getVirAttrs(), selfTO.getVirAttrs()); }
@SuppressWarnings("unchecked") private List<MembershipTO> loadMembershipAttrs() { List<MembershipTO> memberships = new ArrayList<>(); try { membershipSchemas.clear(); for (MembershipTO membership : (List<MembershipTO>) PropertyResolver.getPropertyField( "memberships", anyTO).get(anyTO)) { setSchemas(membership.getGroupKey(), anyTypeClassRestClient.list(getMembershipAuxClasses(membership, anyTO.getType())). stream().map(EntityTO::getKey).collect(Collectors.toList())); setAttrs(membership); if (AbstractAttrs.this instanceof PlainAttrs && !membership.getPlainAttrs().isEmpty()) { memberships.add(membership); } else if (AbstractAttrs.this instanceof DerAttrs && !membership.getDerAttrs().isEmpty()) { memberships.add(membership); } else if (AbstractAttrs.this instanceof VirAttrs && !membership.getVirAttrs().isEmpty()) { memberships.add(membership); } } } catch (WicketRuntimeException | IllegalArgumentException | IllegalAccessException ex) { // ignore } return memberships; }
GroupableRelatableTO.class.cast(updated).getMembership(oMemb.getGroupKey()).ifPresent(uMemb -> { oMemb.getPlainAttrs().stream(). filter(attr -> uMemb.getPlainAttr(attr.getSchema()).isPresent()). forEach(attr -> uMemb.getPlainAttrs().add(attr)); oMemb.getVirAttrs().stream(). filter(attr -> uMemb.getVirAttr(attr.getSchema()).isPresent()). forEach(attr -> uMemb.getVirAttrs().add(attr)); }); }); if (updated instanceof GroupableRelatableTO) { GroupableRelatableTO.class.cast(updated).getMemberships().forEach(memb -> { memb.getPlainAttrs().removeIf(attr -> attr.getValues().isEmpty()); memb.getVirAttrs().removeIf(attr -> attr.getValues().isEmpty()); });
ReportXMLConst.XSD_STRING, memb.getGroupKey()); atts.addAttribute("", "", "groupName", ReportXMLConst.XSD_STRING, memb.getGroupName()); handler.startElement("", "", "membership", atts); UMembership actualMemb = user.getMembership(memb.getGroupKey()).orElse(null); if (actualMemb == null) { LOG.warn("Unexpected: cannot find membership for group {} for user {}", memb.getGroupKey(), user); } else { doExtractResources(handler, groupDataBinder.getGroupTO(actualMemb.getRightEnd(), true));
protected MembershipTO getMembershipTO( final Collection<? extends PlainAttr<?>> plainAttrs, final Map<DerSchema, String> derAttrs, final Map<VirSchema, List<String>> virAttrs, final Membership<? extends Any<?>> membership) { MembershipTO membershipTO = new MembershipTO.Builder(). group(membership.getRightEnd().getKey(), membership.getRightEnd().getName()). build(); plainAttrs.forEach(plainAttr -> { membershipTO.getPlainAttrs().add(new AttrTO.Builder(). schema(plainAttr.getSchema().getKey()). values(plainAttr.getValuesAsStrings()). build()); }); derAttrs.forEach((schema, value) -> { membershipTO.getDerAttrs().add(new AttrTO.Builder(). schema(schema.getKey()). value(value). build()); }); virAttrs.forEach((schema, values) -> { membershipTO.getVirAttrs().add(new AttrTO.Builder(). schema(schema.getKey()). values(values). build()); }); return membershipTO; }
@Override protected void setAttrs(final MembershipTO membershipTO) { List<Attr> attrs = new ArrayList<>(); final Map<String, Attr> attrMap; if (GroupableRelatableTO.class.cast(anyTO).getMembership(membershipTO.getGroupKey()).isPresent()) { attrMap = EntityTOUtils.buildAttrMap(GroupableRelatableTO.class.cast(anyTO) .getMembership(membershipTO.getGroupKey()).get().getVirAttrs()); } else { attrMap = new HashMap<>(); } attrs.addAll(membershipSchemas.get(membershipTO.getGroupKey()).values().stream().map(schema -> { Attr attrTO = new Attr(); attrTO.setSchema(schema.getKey()); if (attrMap.containsKey(schema.getKey())) { attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues()); } else { attrTO.getValues().add(StringUtils.EMPTY); } return attrTO; }).collect(Collectors.toList())); membershipTO.getVirAttrs().clear(); membershipTO.getVirAttrs().addAll(attrs); }
@Override protected void setAttrs(final MembershipTO membershipTO) { List<Attr> attrs = new ArrayList<>(); final Map<String, Attr> attrMap; if (GroupableRelatableTO.class.cast(anyTO).getMembership(membershipTO.getGroupKey()).isPresent()) { attrMap = EntityTOUtils.buildAttrMap(GroupableRelatableTO.class.cast(anyTO) .getMembership(membershipTO.getGroupKey()).get().getPlainAttrs()); } else { attrMap = new HashMap<>(); } attrs.addAll(membershipSchemas.get(membershipTO.getGroupKey()).values().stream(). map(schema -> { Attr attrTO = new Attr(); attrTO.setSchema(schema.getKey()); if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) { attrTO.getValues().add(StringUtils.EMPTY); } else { attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues()); } return attrTO; }).collect(Collectors.toList())); membershipTO.getPlainAttrs().clear(); membershipTO.getPlainAttrs().addAll(attrs); }
public Builder plainAttr(final Attr plainAttr) { instance.getPlainAttrs().add(plainAttr); return this; }
@Override protected void setAttrs(final MembershipTO membershipTO) { List<Attr> attrs = new ArrayList<>(); final Map<String, Attr> attrMap; if (GroupableRelatableTO.class.cast(anyTO).getMembership(membershipTO.getGroupKey()).isPresent()) { attrMap = EntityTOUtils.buildAttrMap(GroupableRelatableTO.class.cast(anyTO) .getMembership(membershipTO.getGroupKey()).get().getDerAttrs()); } else { attrMap = new HashMap<>(); } membershipSchemas.get(membershipTO.getGroupKey()).values().forEach(schema -> { Attr attrTO = new Attr(); attrTO.setSchema(schema.getKey()); if (attrMap.containsKey(schema.getKey())) { attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues()); } attrs.add(attrTO); }); membershipTO.getDerAttrs().clear(); membershipTO.getDerAttrs().addAll(attrs); }
-> searchConditionBuilder.is("key").equalTo(membership.getGroupKey()).wrap()). collect(Collectors.toList()); if (assignedGroups.containsKey(membership.getGroupKey())) { membership.setGroupName(assignedGroups.get(membership.getGroupKey()).getName()); } else { toBeRemoved.add(membership);
public Builder virAttr(final Attr virAttr) { instance.getVirAttrs().add(virAttr); return this; }
public Builder groupName(final String groupName) { instance.setGroupName(groupName); return this; }
@Override protected List<Attr> getAttrsFromTO(final MembershipTO membershipTO) { return membershipTO.getDerAttrs().stream().sorted(attrComparator).collect(Collectors.toList()); }
public Builder group(final String groupKey) { instance.setGroupKey(groupKey); return this; }
dateToMillis(membership.getPlainAttrs(), plainSchema); String groupName = membership.getGroupName(); membership.getPlainAttrs().stream().map(attr -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getPlainAttrs().add(attr); }); membership.getPlainAttrs().clear(); membership.getDerAttrs().stream().map(attr -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getDerAttrs().add(attr); }); membership.getDerAttrs().clear(); membership.getVirAttrs().stream().map((attr) -> { attr.setSchema(groupName.concat(SyncopeEnduserConstants.MEMBERSHIP_ATTR_SEPARATOR). concat(attr.getSchema())); userTO.getVirAttrs().add(attr); }); membership.getVirAttrs().clear();