Skip to content

Commit

Permalink
Displaying auxiliary object class attributes in GUI (MID-2718)
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Mar 15, 2016
1 parent 9b1951e commit b8c023c
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 15 deletions.
Expand Up @@ -29,6 +29,7 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import com.evolveum.midpoint.common.refinery.CompositeRefinedObjectClassDefinition;
import com.evolveum.midpoint.common.refinery.LayerRefinedAttributeDefinition;
import com.evolveum.midpoint.common.refinery.LayerRefinedObjectClassDefinition;
import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition;
Expand Down Expand Up @@ -267,21 +268,7 @@ public RefinedObjectClassDefinition getEditObjectClassDefinition(PrismObject<Sha
}

RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(resource);
ShadowType shadowType = shadow.asObjectable();
ShadowKindType kind = shadowType.getKind();
String intent = shadowType.getIntent();
RefinedObjectClassDefinition rocd;
if (kind != null) {
rocd = refinedSchema.getRefinedDefinition(kind, intent);
} else {
QName objectClassName = shadowType.getObjectClass();
if (objectClassName == null) {
// No data. Fall back to the default
rocd = refinedSchema.getRefinedDefinition(ShadowKindType.ACCOUNT, (String)null);
} else {
rocd = refinedSchema.getRefinedDefinition(objectClassName);
}
}
CompositeRefinedObjectClassDefinition rocd = refinedSchema.determineCompositeObjectClassDefinition(shadow);
LayerRefinedObjectClassDefinition layeredROCD = rocd.forLayer(LayerType.PRESENTATION);

ItemPath attributesPath = new ItemPath(ShadowType.F_ATTRIBUTES);
Expand Down
Expand Up @@ -82,6 +82,7 @@
import com.evolveum.midpoint.util.exception.SecurityViolationException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentPolicyEnforcementType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AuthorizationPhaseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
Expand Down Expand Up @@ -407,6 +408,36 @@ public void test110AddUserMancombUnix() throws Exception {
accountMancombDn = assertPosixAccount(shadow, 1001);
}

@Test
public void test111AccountMancombEditObjectClassDefinition() throws Exception {
final String TEST_NAME = "test111AccountMancombEditObjectClassDefinition";
TestUtil.displayTestTile(this, TEST_NAME);
Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
OperationResult result = task.getResult();

PrismObject<ShadowType> shadow = getShadowModel(accountMancombOid);
display("shadow", shadow);

// WHEN
TestUtil.displayWhen(TEST_NAME);
RefinedObjectClassDefinition editObjectClassDefinition = modelInteractionService.getEditObjectClassDefinition(shadow, resourceOpenDj, AuthorizationPhaseType.REQUEST);

// THEN
TestUtil.displayThen(TEST_NAME);
result.computeStatus();
TestUtil.assertSuccess(result);
display("OC def", editObjectClassDefinition);

PrismAsserts.assertPropertyDefinition(editObjectClassDefinition,
new QName(RESOURCE_OPENDJ_NAMESPACE, "cn"), DOMUtil.XSD_STRING, 1, -1);
PrismAsserts.assertPropertyDefinition(editObjectClassDefinition,
new QName(RESOURCE_OPENDJ_NAMESPACE, "o"), DOMUtil.XSD_STRING, 0, -1);
PrismAsserts.assertPropertyDefinition(editObjectClassDefinition,
new QName(RESOURCE_OPENDJ_NAMESPACE, "uidNumber"), DOMUtil.XSD_INT, 1, 1);
PrismAsserts.assertPropertyDefinition(editObjectClassDefinition,
new QName(RESOURCE_OPENDJ_NAMESPACE, "gidNumber"), DOMUtil.XSD_INT, 1, 1);
}

@Test
public void test119DeleteUserMancombUnix() throws Exception {
final String TEST_NAME = "test119DeleteUserMancombUnix";
Expand Down

0 comments on commit b8c023c

Please sign in to comment.