public static String determineConstructionResource(AssignmentType assignmentType) { ConstructionType construction = assignmentType.getConstruction(); if (construction != null){ if (construction.getResource() != null){ return construction.getResource().getOid(); } else if (construction.getResourceRef() != null){ return construction.getResourceRef().getOid(); } return null; } return null; }
public static String prettyPrint(ConstructionType act) { if (act == null) { return "null"; } StringBuilder sb = new StringBuilder("ConstructionType("); if (act.getResource() != null) { sb.append(prettyPrint(act.getResource())); } if (act.getResourceRef() != null) { sb.append(prettyPrint(act.getResourceRef())); } sb.append(", "); if (act.getIntent() != null) { sb.append("intent="); sb.append(act.getIntent()); sb.append(", "); } if (act.getAttribute() != null) { for (ResourceAttributeDefinitionType attrConstr: act.getAttribute()) { sb.append(prettyPrint(attrConstr)); } } // TODO: Other properties sb.append(")"); return sb.toString(); }
public ResourceType resolveResourceRef(AssignmentType a, OperationResult result) { if (a == null) { return null; } if (a.getConstruction() == null) { return null; } if (a.getConstruction().getResourceRef() == null) { return null; } try { return repositoryService.getObject(ResourceType.class, a.getConstruction().getResourceRef().getOid(), null, result).asObjectable(); } catch (ObjectNotFoundException|SchemaException e) { throw new SystemException(e); } }
public static <F extends FocusType> void assertNotAssignedResource(PrismObject<F> user, String resourceOid) { F userType = user.asObjectable(); for (AssignmentType assignmentType: userType.getAssignment()) { if (assignmentType.getConstruction() == null) { continue; } ObjectReferenceType targetRef = assignmentType.getConstruction().getResourceRef(); if (targetRef != null) { if (resourceOid.equals(targetRef.getOid())) { AssertJUnit.fail(user + " does have assigned resource "+resourceOid+" while not expecting it"); } } } }
public static <F extends FocusType> void assertAssignedResource(PrismObject<F> user, String resourceOid) { F userType = user.asObjectable(); for (AssignmentType assignmentType: userType.getAssignment()) { if (assignmentType.getConstruction() == null) { continue; } ObjectReferenceType targetRef = assignmentType.getConstruction().getResourceRef(); if (targetRef != null) { if (resourceOid.equals(targetRef.getOid())) { return; } } } AssertJUnit.fail(user + " does NOT have assigned resource "+resourceOid+" while expecting it"); }
if (refinedObjectClassDefinition == null) { sb.append(" (no object class definition)"); if (getConstructionType() != null && getConstructionType().getResourceRef() != null) { // should DebugUtil.debugDumpLabel(sb, "resourceRef / kind / intent", indent + 1); sb.append(" "); sb.append(ObjectTypeUtil.toShortString(getConstructionType().getResourceRef())); sb.append(" / "); sb.append(getConstructionType().getKind());
} else if (value instanceof ConstructionType) { ConstructionType ct = (ConstructionType) value; Object resource = (ct.getResource() != null ? ct.getResource().getName() : (ct.getResourceRef() != null ? ct.getResourceRef().getOid() : null)); return "resource object" + (resource != null ? " on " + resource : "") + (ct.getDescription() != null ? ": " + ct.getDescription() : ""); } else if (value instanceof Enum) {
protected void assertAssignedNoAccount(PrismObject<UserType> user, String resourceOid) throws ObjectNotFoundException, SchemaException { UserType userType = user.asObjectable(); for (AssignmentType assignmentType: userType.getAssignment()) { ConstructionType construction = assignmentType.getConstruction(); if (construction != null) { if (construction.getKind() != null && construction.getKind() != ShadowKindType.ACCOUNT) { continue; } if (resourceOid.equals(construction.getResourceRef().getOid())) { AssertJUnit.fail(user.toString()+" has account assignment for resource "+resourceOid+" while expecting no such assignment"); } } } }
protected AssignmentType assertAssignedAccount(PrismObject<UserType> user, String resourceOid) throws ObjectNotFoundException, SchemaException { UserType userType = user.asObjectable(); for (AssignmentType assignmentType: userType.getAssignment()) { ConstructionType construction = assignmentType.getConstruction(); if (construction != null) { if (construction.getKind() != null && construction.getKind() != ShadowKindType.ACCOUNT) { continue; } if (resourceOid.equals(construction.getResourceRef().getOid())) { return assignmentType; } } } AssertJUnit.fail(user.toString() + " does not have account assignment for resource " + resourceOid); return null; // not reached }
ResourceType getAssignmentApprovalTarget(AssignmentType assignmentType, OperationResult result) { if (assignmentType.getConstruction() == null) { return null; } if (assignmentType.getConstruction().getResource() != null) { return assignmentType.getConstruction().getResource(); } ObjectReferenceType resourceRef = assignmentType.getConstruction().getResourceRef(); return primaryChangeAspectHelper.resolveTargetRef(resourceRef, ResourceType.class, result); }
@Test public void addGetRoleWithResourceRefFilter() throws Exception{ PrismObject<RoleType> role = prismContext.parseObject(new File("src/test/resources/basic/role-resource-filter.xml")); System.out.println("role: " + role.debugDump()); System.out.println("role: " + role.asObjectable().getInducement().get(0).getConstruction().getResourceRef().getFilter()); OperationResult result = new OperationResult("sync desc test"); String oid = repositoryService.addObject(role, null, result); role = repositoryService.getObject(RoleType.class, oid, null, result); RoleType roleType = role.asObjectable(); System.out.println("role: " + role.debugDump()); System.out.println("role: " + role.asObjectable().getInducement().get(0).getConstruction().getResourceRef().getFilter()); // desc = roleType.getSynchronizationSituationDescription().get(0); // AssertJUnit.assertEquals("Times don't match", TIME, XMLGregorianCalendarType.asDate(desc.getTimestamp())); }
if (getConstructionType().getResource() != null) { resource = getConstructionType().getResource(); } else if (getConstructionType().getResourceRef() != null) { try { if (getConstructionType().getResourceRef().getOid() == null) { resource = resolveTarget(" resolving resource ", task, result); } else { resource = LensUtil.getResourceReadOnly(getLensContext(), getConstructionType().getResourceRef().getOid(), getObjectResolver(), task, result); throw new SchemaException("No resource set in account construction in " + getSource() + ", resource : " + getConstructionType().getResource() + ", resourceRef: " + getConstructionType().getResourceRef()); getConstructionType().getResourceRef().setOid(resource.getOid());
LOGGER.info("Expression variables for filter evaluation: {}", variables); ObjectFilter origFilter = getPrismContext().getQueryConverter().parseFilter(getConstructionType().getResourceRef().getFilter(), ResourceType.class); LOGGER.info("Orig filter {}", origFilter);
private void evaluateKindIntentObjectClass(Task task, OperationResult result) throws SchemaException, ObjectNotFoundException { String resourceOid = null; if (getConstructionType().getResourceRef() != null) { resourceOid = getConstructionType().getResourceRef().getOid();
assignmentCase.setTargetRef(assignment.getConstruction().getResourceRef()); valid = isIncludeResources(scope); } else {
repo.setResourceRef(RUtil.jaxbRefToEmbeddedRepoRef(jaxb.getConstruction().getResourceRef(), repositoryContext.relationRegistry));
private void assertJaxb(AccessCertificationCaseType aCase) throws SchemaException { PrismAsserts.assertRefEquivalent("Wrong objectRef", getPrismContext().itemFactory().createReferenceValue("ee53eba7-5c16-4c16-ad15-dd6a2360ab1a", UserType.COMPLEX_TYPE), aCase.getObjectRef().asReferenceValue()); PrismAsserts.assertRefEquivalent("Wrong targetRef", getPrismContext().itemFactory().createReferenceValue("ef2bc95b-76e0-48e2-86d6-3d4f02d3e1a2", ResourceType.COMPLEX_TYPE), aCase.getTargetRef().asReferenceValue()); assertTrue(aCase instanceof AccessCertificationAssignmentCaseType); AccessCertificationAssignmentCaseType assignmentCase = (AccessCertificationAssignmentCaseType) aCase; assertNotNull("no assignment", assignmentCase.getAssignment()); assertEquals((Long) 1L, assignmentCase.getAssignment().getId()); PrismAsserts.assertRefEquivalent("Wrong resourceRef in assignment", getPrismContext().itemFactory().createReferenceValue("ef2bc95b-76e0-48e2-86d6-3d4f02d3e1a2", ResourceType.COMPLEX_TYPE), assignmentCase.getAssignment().getConstruction().getResourceRef().asReferenceValue()); assertEquals("wrong isInducement", Boolean.FALSE, assignmentCase.isIsInducement()); }