diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/handlers/DirectAssignmentCertGuiHandler.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/handlers/DirectAssignmentCertGuiHandler.java index bedf2cba4e3..98ffb4570dc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/handlers/DirectAssignmentCertGuiHandler.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/handlers/DirectAssignmentCertGuiHandler.java @@ -13,13 +13,17 @@ import com.evolveum.midpoint.prism.Containerable; import com.evolveum.midpoint.prism.Item; import com.evolveum.midpoint.prism.PrismContainer; +import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.util.QNameUtil; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.page.admin.certification.dto.CertCaseOrWorkItemDto; import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationAssignmentCaseType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCaseType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; + +import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.model.IModel; @@ -33,6 +37,8 @@ * @author mederly */ public class DirectAssignmentCertGuiHandler implements CertGuiHandler { + private static final Trace LOGGER = TraceManager.getTrace(DirectAssignmentCertGuiHandler.class); + @Override public String getCaseInfoButtonTitle(IModel rowModel, PageBase page) { @@ -57,6 +63,24 @@ public String getCaseInfoButtonTitle(IModel row String objectType = getLocalizedTypeName(acase.getObjectRef().getType(), page); String objectName = dto.getObjectName(); + // If object is UserType, display user's fullName in addition to the name + if (QNameUtil.match(acase.getObjectRef().getType(), UserType.COMPLEX_TYPE)) { + try { + PrismObject object = page.getModelService().getObject(UserType.class, acase.getObjectRef().getOid(), null, page.getPageTask(), page.getPageTask().getResult()); + + if (object != null) { + UserType userObj = object.asObjectable(); + PolyStringType fullName = userObj.getFullName(); + if (fullName != null && !StringUtils.isEmpty(fullName.getOrig())) { + objectName = fullName.getOrig() + " (" + objectName + ")"; + } + } + } catch (Exception e) { + //probably autz exception, mute it and return object name + LOGGER.debug("Error retrieving full object in getCaseInfoButtonTitle: {}", e.getMessage()); + } + } + infoList.add(page.createStringResource("PageCert.message.assignment", assignmentOrInducement, emptyToDash(targetType), emptyToDash(targetName),