use of org.apache.syncope.common.lib.to.MembershipTO in project syncope by apache.
the class PlainAttrs method setAttrs.
@Override
protected void setAttrs(final MembershipTO membershipTO) {
List<AttrTO> attrs = new ArrayList<>();
Map<String, AttrTO> attrMap = EntityTOUtils.buildAttrMap(membershipTO.getPlainAttrs());
membershipSchemas.get(membershipTO.getGroupKey()).values().stream().map(schema -> {
AttrTO attrTO = new AttrTO();
attrTO.setSchema(schema.getKey());
if (attrMap.get(schema.getKey()) == null || attrMap.get(schema.getKey()).getValues().isEmpty()) {
attrTO.getValues().add("");
// is important to set the schema info only after values setting
attrTO.setSchemaInfo(schema);
} else {
attrTO.getValues().addAll(attrMap.get(schema.getKey()).getValues());
}
return attrTO;
}).forEachOrdered(attrTO -> {
attrs.add(attrTO);
});
membershipTO.getPlainAttrs().clear();
membershipTO.getPlainAttrs().addAll(attrs);
}
use of org.apache.syncope.common.lib.to.MembershipTO in project syncope by apache.
the class AbstractAttrs method loadMembershipAttrTOs.
@SuppressWarnings("unchecked")
private List<MembershipTO> loadMembershipAttrTOs() {
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;
}
use of org.apache.syncope.common.lib.to.MembershipTO in project syncope by apache.
the class MembershipITCase method deleteUserWithMembership.
@Test
public void deleteUserWithMembership() {
UserTO user = UserITCase.getUniqueSampleTO("memb@apache.org");
user.setRealm("/even/two");
user.getPlainAttrs().add(new AttrTO.Builder().schema("aLong").value("1976").build());
MembershipTO membership = new MembershipTO.Builder().group("034740a9-fa10-453b-af37-dc7897e98fb1").build();
membership.getPlainAttrs().add(new AttrTO.Builder().schema("aLong").value("1977").build());
user.getMemberships().add(membership);
user = createUser(user).getEntity();
assertNotNull(user.getKey());
userService.delete(user.getKey());
}
use of org.apache.syncope.common.lib.to.MembershipTO in project syncope by apache.
the class MembershipITCase method onGroupDelete.
@Test
public void onGroupDelete() {
// pre: create group with type extension
TypeExtensionTO typeExtension = new TypeExtensionTO();
typeExtension.setAnyType(AnyTypeKind.USER.name());
typeExtension.getAuxClasses().add("csv");
typeExtension.getAuxClasses().add("other");
GroupTO groupTO = GroupITCase.getBasicSampleTO("typeExt");
groupTO.getTypeExtensions().add(typeExtension);
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
// pre: create user with membership to such group
UserTO user = UserITCase.getUniqueSampleTO("typeExt@apache.org");
MembershipTO membership = new MembershipTO.Builder().group(groupTO.getKey()).build();
membership.getPlainAttrs().add(new AttrTO.Builder().schema("aLong").value("1454").build());
user.getMemberships().add(membership);
user = createUser(user).getEntity();
// verify that 'aLong' is correctly populated for user's membership
assertEquals(1, user.getMemberships().size());
membership = user.getMembership(groupTO.getKey()).get();
assertNotNull(membership);
assertEquals(1, membership.getPlainAttr("aLong").get().getValues().size());
assertEquals("1454", membership.getPlainAttr("aLong").get().getValues().get(0));
// verify that derived attrbutes from 'csv' and 'other' are also populated for user's membership
assertFalse(membership.getDerAttr("csvuserid").get().getValues().isEmpty());
assertFalse(membership.getDerAttr("noschema").get().getValues().isEmpty());
// now remove the group -> all related memberships should have been removed as well
groupService.delete(groupTO.getKey());
// re-read user and verify that no memberships are available any more
user = userService.read(user.getKey());
assertTrue(user.getMemberships().isEmpty());
}
use of org.apache.syncope.common.lib.to.MembershipTO in project syncope by apache.
the class GroupITCase method aStaticMembershipCount.
@Test
public void aStaticMembershipCount() {
// Create a new printer as a static member of a new group
GroupTO group = getBasicSampleTO("aStaticMembership");
group = createGroup(group).getEntity();
AnyObjectTO printer = new AnyObjectTO();
printer.setRealm(SyncopeConstants.ROOT_REALM);
printer.setName("Printer_" + getUUIDString());
printer.setType("PRINTER");
MembershipTO membership = new MembershipTO();
membership.setGroupKey(group.getKey());
printer.getMemberships().add(membership);
printer = createAnyObject(printer).getEntity();
group = groupService.read(group.getKey());
assertEquals(0, group.getDynamicAnyObjectMembershipCount());
assertEquals(1, group.getStaticAnyObjectMembershipCount());
anyObjectService.delete(printer.getKey());
groupService.delete(group.getKey());
}
Aggregations