Search in sources :

Example 6 with MembershipTO

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);
}
Also used : Form(org.apache.wicket.markup.html.form.Form) AttrTO(org.apache.syncope.common.lib.to.AttrTO) StringResourceModel(org.apache.wicket.model.StringResourceModel) EntityTOUtils(org.apache.syncope.common.lib.EntityTOUtils) AnyTO(org.apache.syncope.common.lib.to.AnyTO) FieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel) StringUtils(org.apache.commons.lang3.StringUtils) AjaxDropDownChoicePanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel) ArrayList(java.util.ArrayList) AjaxCheckBoxPanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxCheckBoxPanel) AjaxSpinnerFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxSpinnerFieldPanel) PlainSchemaTO(org.apache.syncope.common.lib.to.PlainSchemaTO) AttrSchemaType(org.apache.syncope.common.lib.types.AttrSchemaType) EncryptedFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.EncryptedFieldPanel) SchemaUtils(org.apache.syncope.client.console.commons.SchemaUtils) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) Map(java.util.Map) ListUtils(org.apache.commons.collections4.ListUtils) AjaxTextFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel) IModel(org.apache.wicket.model.IModel) AjaxDateTimeFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateTimeFieldPanel) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) ListView(org.apache.wicket.markup.html.list.ListView) IChoiceRenderer(org.apache.wicket.markup.html.form.IChoiceRenderer) ListModel(org.apache.wicket.model.util.ListModel) SyncopeConstants(org.apache.syncope.common.lib.SyncopeConstants) Accordion(org.apache.syncope.client.console.wicket.markup.html.bootstrap.tabs.Accordion) ListItem(org.apache.wicket.markup.html.list.ListItem) AbstractTab(org.apache.wicket.extensions.markup.html.tabs.AbstractTab) Model(org.apache.wicket.model.Model) SchemaType(org.apache.syncope.common.lib.types.SchemaType) PageReference(org.apache.wicket.PageReference) GroupTO(org.apache.syncope.common.lib.to.GroupTO) Collectors(java.util.stream.Collectors) AjaxDateFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.AjaxDateFieldPanel) LabelInfo(org.apache.syncope.client.console.wicket.ajax.markup.html.LabelInfo) List(java.util.List) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) PropertyModel(org.apache.wicket.model.PropertyModel) AjaxWizard(org.apache.syncope.client.console.wizards.AjaxWizard) MultiFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.MultiFieldPanel) BinaryFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.BinaryFieldPanel) AbstractFieldPanel(org.apache.syncope.client.console.wicket.markup.html.form.AbstractFieldPanel) UserTO(org.apache.syncope.common.lib.to.UserTO) ResourceModel(org.apache.wicket.model.ResourceModel) Collections(java.util.Collections) AnyObjectTO(org.apache.syncope.common.lib.to.AnyObjectTO) AttrTO(org.apache.syncope.common.lib.to.AttrTO) ArrayList(java.util.ArrayList)

Example 7 with MembershipTO

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;
}
Also used : EntityTO(org.apache.syncope.common.lib.to.EntityTO) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) WicketRuntimeException(org.apache.wicket.WicketRuntimeException) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List)

Example 8 with MembershipTO

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());
}
Also used : UserTO(org.apache.syncope.common.lib.to.UserTO) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) Test(org.junit.jupiter.api.Test)

Example 9 with MembershipTO

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());
}
Also used : UserTO(org.apache.syncope.common.lib.to.UserTO) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) TypeExtensionTO(org.apache.syncope.common.lib.to.TypeExtensionTO) GroupTO(org.apache.syncope.common.lib.to.GroupTO) Test(org.junit.jupiter.api.Test)

Example 10 with MembershipTO

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());
}
Also used : AnyObjectTO(org.apache.syncope.common.lib.to.AnyObjectTO) MembershipTO(org.apache.syncope.common.lib.to.MembershipTO) GroupTO(org.apache.syncope.common.lib.to.GroupTO) Test(org.junit.jupiter.api.Test)

Aggregations

MembershipTO (org.apache.syncope.common.lib.to.MembershipTO)23 UserTO (org.apache.syncope.common.lib.to.UserTO)18 AttrTO (org.apache.syncope.common.lib.to.AttrTO)15 GroupTO (org.apache.syncope.common.lib.to.GroupTO)12 Map (java.util.Map)11 Set (java.util.Set)9 SerializationUtils (org.apache.commons.lang3.SerializationUtils)9 AttrPatch (org.apache.syncope.common.lib.patch.AttrPatch)9 StringUtils (org.apache.commons.lang3.StringUtils)8 AnyObjectTO (org.apache.syncope.common.lib.to.AnyObjectTO)8 PatchOperation (org.apache.syncope.common.lib.types.PatchOperation)8 List (java.util.List)7 Optional (java.util.Optional)7 UserPatch (org.apache.syncope.common.lib.patch.UserPatch)7 AnyTO (org.apache.syncope.common.lib.to.AnyTO)7 Test (org.junit.jupiter.api.Test)7 Collections (java.util.Collections)6 Response (javax.ws.rs.core.Response)6 SyncopeClientException (org.apache.syncope.common.lib.SyncopeClientException)6 StringPatchItem (org.apache.syncope.common.lib.patch.StringPatchItem)6