@Override public boolean isMemberOf(UserType user, String orgOid) { for (ObjectReferenceType objectReferenceType : user.getParentOrgRef()) { if (orgOid.equals(objectReferenceType.getOid())) { return true; } } return false; }
@Override public Collection<String> getOrgUnits(UserType user, boolean preAuthorized) { Set<String> retval = new HashSet<>(); if (user == null){ return retval; } for (ObjectReferenceType orgRef : user.getParentOrgRef()) { retval.add(orgRef.getOid()); } return retval; }
protected void assertObjectRefs(String contextDesc, boolean checkNames, Collection<ObjectReferenceType> real, String... expected) { List<String> refOids = new ArrayList<>(); for (ObjectReferenceType ref: real) { refOids.add(ref.getOid()); assertNotNull("Missing type in "+ref.getOid()+" in "+contextDesc, ref.getType()); if (checkNames) { assertNotNull("Missing name in " + ref.getOid() + " in " + contextDesc, ref.getTargetName()); } } PrismAsserts.assertSets("Wrong values in "+contextDesc, refOids, expected); }
@Override public <O extends ObjectType> boolean isDescendant(PrismObject<O> object, String orgOid) throws SchemaException { List<ObjectReferenceType> objParentOrgRefs = object.asObjectable().getParentOrgRef(); List<String> objParentOrgOids = new ArrayList<>(objParentOrgRefs.size()); for (ObjectReferenceType objParentOrgRef: objParentOrgRefs) { objParentOrgOids.add(objParentOrgRef.getOid()); } return isAnySubordinate(orgOid, objParentOrgOids); }
protected <F extends FocusType> void assertDelegatedRef(PrismObject<F> focus, String... oids) { List<String> refOids = new ArrayList<>(); for (ObjectReferenceType ref: focus.asObjectable().getDelegatedRef()) { refOids.add(ref.getOid()); assertNotNull("Missing type in delegatedRef "+ref.getOid()+" in "+focus, ref.getType()); } PrismAsserts.assertSets("Wrong values in delegatedRef in "+focus, refOids, oids); }
protected <F extends FocusType> void assertRoleMembershipRef(PrismObject<F> focus, String... roleOids) { List<String> refOids = new ArrayList<>(); for (ObjectReferenceType ref: focus.asObjectable().getRoleMembershipRef()) { refOids.add(ref.getOid()); assertNotNull("Missing type in roleMembershipRef "+ref.getOid()+" in "+focus, ref.getType()); // Name is not stored now // assertNotNull("Missing name in roleMembershipRef "+ref.getOid()+" in "+focus, ref.getTargetName()); } PrismAsserts.assertSets("Wrong values in roleMembershipRef in "+focus, refOids, roleOids); }
public static <O extends ObjectType> void assertHasOrg(PrismObject<O> object, String orgOid) { for (ObjectReferenceType orgRef: object.asObjectable().getParentOrgRef()) { if (orgOid.equals(orgRef.getOid())) { return; } } AssertJUnit.fail(object + " does not have org " + orgOid); }
private List<PrismObject<ShadowType>> getLinkTargets() throws ObjectNotFoundException, SchemaException { F focusType = getObject().asObjectable(); List<PrismObject<ShadowType>> shadows = new ArrayList<>(); for (ObjectReferenceType linkRefType: focusType.getLinkRef()) { String linkTargetOid = linkRefType.getOid(); assertFalse("No linkRef oid in "+desc(), StringUtils.isBlank(linkTargetOid)); shadows.add(getCachedObject(ShadowType.class, linkTargetOid)); } return shadows; }
public static boolean isConflicting(ShadowType shadow1, ShadowType shadow2) { if (!shadow1.getResourceRef().getOid().equals(shadow2.getResourceRef().getOid())) { return false; } if (!MiscUtil.equals(getKind(shadow1), getKind(shadow2))) { return false; } return ResourceShadowDiscriminator.equalsIntent(shadow1.getIntent(), shadow2.getIntent()); }
protected AssignmentType findInducementByTarget(String roleOid, String targetOid) throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException, PolicyViolationException, SecurityViolationException { Task task = createTask(AbstractModelIntegrationTest.class.getName() + ".findInducementByTarget"); OperationResult result = task.getResult(); PrismObject<RoleType> role = modelService.getObject(RoleType.class, roleOid, null, task, result); for (AssignmentType inducement: role.asObjectable().getInducement()) { ObjectReferenceType targetRef = inducement.getTargetRef(); if (targetRef != null && targetOid.equals(targetRef.getOid())) { return inducement; } } return null; }
public static <O extends ObjectType> boolean hasOrg(PrismObject<O> user, String orgOid, QName relation) { for (ObjectReferenceType orgRef: user.asObjectable().getParentOrgRef()) { if (orgOid.equals(orgRef.getOid()) && getPrismContext().relationMatches(relation, orgRef.getRelation())) { return true; } } return false; }
protected <F extends FocusType> PrismReferenceValue getSingleLinkRef(PrismObject<F> focus) { F focusType = focus.asObjectable(); assertEquals("Unexpected number of linkRefs", 1, focusType.getLinkRef().size()); ObjectReferenceType linkRefType = focusType.getLinkRef().get(0); String accountOid = linkRefType.getOid(); assertFalse("No linkRef oid", StringUtils.isBlank(accountOid)); PrismReferenceValue accountRefValue = linkRefType.asReferenceValue(); assertEquals("OID mismatch in linkRefValue", accountOid, accountRefValue.getOid()); return accountRefValue; }
private AssignmentType findAssignmentOrInducement(AbstractRoleType source, AbstractRoleType target) { return Stream.concat(source.getAssignment().stream(), source.getInducement().stream()) .filter(a -> a.getTargetRef() != null && target.getOid().equals(a.getTargetRef().getOid())) .findFirst() .orElseThrow(() -> new IllegalStateException(source + " contains no assignment/inducement to " + target)); }
public static String getConnectorHostTypeOid(ConnectorType connectorType) { if (connectorType.getConnectorHostRef() != null) { return connectorType.getConnectorHostRef().getOid(); } else if (connectorType.getConnectorHost() != null) { return connectorType.getConnectorHost().getOid(); } else { return null; } }
protected AccessCertificationWorkItemType findWorkItem(Collection<AccessCertificationWorkItemType> workItems, String subjectOid, String targetOid, int iteration) { for (AccessCertificationWorkItemType workItem : workItems) { AccessCertificationCaseType aCase = CertCampaignTypeUtil.getCase(workItem); if (aCase != null && aCase.getTargetRef() != null && aCase.getTargetRef().getOid().equals(targetOid) && aCase.getObjectRef() != null && aCase.getObjectRef().getOid().equals(subjectOid) && norm(workItem.getIteration()) == iteration) { return workItem; } } return null; }
protected void assertCaseReviewers(AccessCertificationCaseType _case, AccessCertificationResponseType currentStageOutcome, int currentStage, List<String> reviewerOidList) { assertEquals("wrong current stage outcome for "+_case, OutcomeUtils.toUri(currentStageOutcome), _case.getCurrentStageOutcome()); assertEquals("wrong current stage number for "+_case, currentStage, _case.getStageNumber()); Set<String> realReviewerOids = CertCampaignTypeUtil.getCurrentReviewers(_case).stream().map(ref -> ref.getOid()).collect(Collectors.toSet()); assertEquals("wrong reviewer oids for "+_case, new HashSet<>(reviewerOidList), realReviewerOids); }
@Test public void test006GetObjectSchemaless() throws Exception { final String TEST_NAME = "test006GetObjectSchemaless"; TestUtil.displayTestTitle(TEST_NAME); // GIVEN OperationResult result = new OperationResult(TestDummySchemaless.class.getName() + "." + TEST_NAME); PrismObject<ResourceType> resource = provisioningService.getObject(ResourceType.class, RESOURCE_DUMMY_NO_SCHEMA_OID, null, null, result); assertNotNull("Resource is null", resource); ResourceType resourceType = resource.asObjectable(); assertNotNull("No connector ref", resourceType.getConnectorRef()); assertNotNull("No connector ref OID", resourceType.getConnectorRef().getOid()); }
protected AccessCertificationCaseType checkCaseSanity(Collection<AccessCertificationCaseType> caseList, String objectOid, String targetOid, FocusType focus, String tenantOid, String orgOid, ActivationStatusType administrativeStatus) { AccessCertificationCaseType aCase = checkCaseSanity(caseList, objectOid, targetOid, focus); String realTenantOid = aCase.getTenantRef() != null ? aCase.getTenantRef().getOid() : null; String realOrgOid = aCase.getOrgRef() != null ? aCase.getOrgRef().getOid() : null; ActivationStatusType realStatus = aCase.getActivation() != null ? aCase.getActivation().getAdministrativeStatus() : null; assertEquals("incorrect tenant org", tenantOid, realTenantOid); assertEquals("incorrect org org", orgOid, realOrgOid); assertEquals("incorrect admin status", administrativeStatus, realStatus); return aCase; }
private void assertObjectTemplate(List<ObjectPolicyConfigurationType> defaultObjectPolicyConfigurations, QName objectType, String subtype, String userTemplateOid) { for (ObjectPolicyConfigurationType objectPolicyConfiguration: defaultObjectPolicyConfigurations) { if (MiscUtil.equals(objectPolicyConfiguration.getType(), objectType) && MiscUtil.equals(objectPolicyConfiguration.getSubtype(), subtype) && MiscUtil.equals(objectPolicyConfiguration.getObjectTemplateRef().getOid(), userTemplateOid)) { return; } } AssertJUnit.fail("Object template for "+objectType+":"+subtype+"="+userTemplateOid+" not found"); }