public static ActivationType createDisabled() { ActivationType activationType = new ActivationType(); activationType.setAdministrativeStatus(ActivationStatusType.DISABLED); return activationType; } }
public static void checkShadowActivationConsistency(PrismObject<ShadowType> shadow) { if (shadow == null) { // just for sure return; } ActivationType activation = shadow.asObjectable().getActivation(); if (activation == null) { return; } FailedOperationTypeType failedOperation = shadow.asObjectable().getFailedOperationType(); if (failedOperation == FailedOperationTypeType.ADD) { return; // in this case it's ok to have activation present } if (activation.getAdministrativeStatus() != null || activation.getEffectiveStatus() != null || activation.getValidFrom() != null || activation.getValidTo() != null || activation.getValidityStatus() != null || activation.getLockoutStatus() != null || activation.getLockoutExpirationTimestamp() != null || activation.getValidityChangeTimestamp() != null) { String m = "Unexpected content in shadow.activation for " + ObjectTypeUtil.toShortString(shadow) + ": " + activation; LOGGER.warn("{}", m); //throw new IllegalStateException(m); // use only for testing } }
public static void cleanupShadowActivation(ActivationType a) { a.setAdministrativeStatus(null); a.setEffectiveStatus(null); a.setValidFrom(null); a.setValidTo(null); a.setValidityStatus(null); a.setLockoutStatus(null); a.setLockoutExpirationTimestamp(null); a.setValidityChangeTimestamp(null); }
public ActivationType clone() { ActivationType object = new ActivationType(); PrismContainerValue value = asPrismContainerValue().clone(); object.setupContainerValue(value); return object; }
public static void fromJaxb(ActivationType jaxb, RActivation repo, RepositoryContext repositoryContext) throws DtoTranslationException { Validate.notNull(jaxb, "JAXB object must not be null."); Validate.notNull(repo, "Repo object must not be null."); repo.setAdministrativeStatus(RUtil.getRepoEnumValue(jaxb.getAdministrativeStatus(), RActivationStatus.class)); repo.setEffectiveStatus(RUtil.getRepoEnumValue(jaxb.getEffectiveStatus(), RActivationStatus.class)); repo.setValidityStatus(RUtil.getRepoEnumValue(jaxb.getValidityStatus(), RTimeIntervalStatus.class)); repo.setValidFrom(jaxb.getValidFrom()); repo.setValidTo(jaxb.getValidTo()); repo.setDisableReason(jaxb.getDisableReason()); repo.setArchiveTimestamp(jaxb.getArchiveTimestamp()); repo.setDisableTimestamp(jaxb.getDisableTimestamp()); repo.setEnableTimestamp(jaxb.getEnableTimestamp()); repo.setValidityChangeTimestamp(jaxb.getValidityChangeTimestamp()); }
public static void copyToJAXB(RActivation repo, ActivationType jaxb, PrismContext prismContext) { Validate.notNull(jaxb, "JAXB object must not be null."); Validate.notNull(repo, "Repo object must not be null."); if (repo.getAdministrativeStatus() != null) { jaxb.setAdministrativeStatus(repo.getAdministrativeStatus().getSchemaValue()); } if (repo.getEffectiveStatus() != null) { jaxb.setEffectiveStatus(repo.getEffectiveStatus().getSchemaValue()); } if (repo.getValidityStatus() != null) { jaxb.setValidityStatus(repo.getValidityStatus().getSchemaValue()); } jaxb.setValidFrom(repo.getValidFrom()); jaxb.setValidTo(repo.getValidTo()); jaxb.setDisableReason(repo.getDisableReason()); jaxb.setArchiveTimestamp(repo.getArchiveTimestamp()); jaxb.setDisableTimestamp(repo.getDisableTimestamp()); jaxb.setEnableTimestamp(repo.getEnableTimestamp()); jaxb.setValidityChangeTimestamp(repo.getValidityChangeTimestamp()); }
if (repoActivation != null) { if (resultActivationType == null) { resultActivationType = new ActivationType(); resultShadowType.setActivation(resultActivationType); resultActivationType.setId(repoActivation.getId()); resultActivationType.setDisableReason(repoActivation.getDisableReason()); resultActivationType.setEnableTimestamp(repoActivation.getEnableTimestamp()); resultActivationType.setDisableTimestamp(repoActivation.getDisableTimestamp()); resultActivationType.setArchiveTimestamp(repoActivation.getArchiveTimestamp()); resultActivationType.setValidityChangeTimestamp(repoActivation.getValidityChangeTimestamp());
@Test public void test111JackAssignJudgeNotYetValid() throws Exception { final String TEST_NAME = "test111JackAssignJudgeNotYetValid"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); ActivationType activationType = new ActivationType(); XMLGregorianCalendar validFrom = clock.currentTimeXMLGregorianCalendar(); validFrom.add(XmlTypeConverter.createDuration(60*60*1000)); // one hour ahead activationType.setValidFrom(validFrom); testJackAssignRoleJudgeInvalid(TEST_NAME, activationType, task, result); }
@Test public void test112JackAssignJudgeAfterValidity() throws Exception { final String TEST_NAME = "test112JackAssignJudgeAfterValidity"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); ActivationType activationType = new ActivationType(); XMLGregorianCalendar validTo = clock.currentTimeXMLGregorianCalendar(); validTo.add(XmlTypeConverter.createDuration(-60*60*1000)); // one hour ago activationType.setValidTo(validTo); testJackAssignRoleJudgeInvalid(TEST_NAME, activationType, task, result); }
protected ActivationType createActivationType(ActivationStatusType administrativeStatus, XMLGregorianCalendar validFrom, XMLGregorianCalendar validTo) { ActivationType activationType = new ActivationType(); activationType.setAdministrativeStatus(administrativeStatus); activationType.setValidFrom(validFrom); activationType.setValidTo(validTo); return activationType; }
public static boolean isAdministrativeEnabledOrNull(ActivationType activation) { if (activation == null) { return true; } return activation.getAdministrativeStatus() == ActivationStatusType.ENABLED || activation.getAdministrativeStatus() == null; }
ut.setName(new PolyStringType("user456")); ut.setFullName(new PolyStringType("User User456")); ut.setActivation(new ActivationType(prismContext)); ut.getActivation().setAdministrativeStatus(ActivationStatusType.ENABLED); ut.getActivation().setValidTo(XmlTypeConverter.createXMLGregorianCalendar(2020, 1, 1, 0, 0, 0)); AssignmentType ass1 = new AssignmentType(prismContext); ass1.setActivation(new ActivationType(prismContext)); ass1.getActivation().setAdministrativeStatus(ActivationStatusType.ENABLED); ass1.getActivation().setValidTo(XmlTypeConverter.createXMLGregorianCalendar(2019, 1, 1, 0, 0, 0)); ass1.setTargetRef(createObjectRef(ROLE_SUPERUSER_OID, ROLE)); ut.getAssignment().add(ass1);
@Test public void test115JackAssignJudgeValid() throws Exception { final String TEST_NAME = "test115JackAssignJudgeValid"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); ActivationType activationType = new ActivationType(); XMLGregorianCalendar validFrom = clock.currentTimeXMLGregorianCalendar(); validFrom.add(XmlTypeConverter.createDuration(-60*60*1000)); // one hour ago activationType.setValidFrom(validFrom); XMLGregorianCalendar validTo = clock.currentTimeXMLGregorianCalendar(); validTo.add(XmlTypeConverter.createDuration(60*60*1000)); // one hour ahead activationType.setValidTo(validTo); testJackAssignRoleJudgeValid(TEST_NAME, activationType, task, result); }
activationStatusType = ActivationStatusType.DISABLED; activationType.setAdministrativeStatus(activationStatusType); activationType.setEffectiveStatus(activationStatusType); LOGGER.trace("Converted activation administrativeStatus: {}", activationStatusType); continue; activationType.setValidFrom(XmlTypeConverter.createXMLGregorianCalendar(millis)); continue; activationType.setValidTo(XmlTypeConverter.createXMLGregorianCalendar(millis)); continue; lockoutStatusType = LockoutStatusType.NORMAL; activationType.setLockoutStatus(lockoutStatusType); LOGGER.trace("Converted activation lockoutStatus: {}", lockoutStatusType); continue;
public TimeIntervalStatusType getValidityStatus(ActivationType activationType, XMLGregorianCalendar referenceTime) { if (activationType == null || referenceTime == null) { return null; } XMLGregorianCalendar validFrom = activationType.getValidFrom(); XMLGregorianCalendar validTo = activationType.getValidTo(); if (validFrom == null && validTo == null) { return null; } TimeIntervalStatusType status = TimeIntervalStatusType.IN; if (validFrom != null && (referenceTime == null || referenceTime.compare(validFrom) == DatatypeConstants.LESSER)) { status = TimeIntervalStatusType.BEFORE; } if (validTo != null && referenceTime.compare(validTo) == DatatypeConstants.GREATER) { status = TimeIntervalStatusType.AFTER; } return status; }
/** * Create an instance of {@link ActivationType } * */ public ActivationType createActivationType() { return new ActivationType(); }
ContainerDelta<ActivationType> activationDelta = activationDef.createEmptyDelta( ItemPath.create(FocusType.F_ASSIGNMENT, assignmentType.getId(), AssignmentType.F_ACTIVATION)); ActivationType newActivationType = new ActivationType(); activationDelta.setValuesToReplace(newActivationType.asPrismContainerValue()); newActivationType.setEffectiveStatus(expectedEffectiveStatus); focusContext.swallowToSecondaryDelta(activationDelta); } else { ActivationStatusType currentEffectiveStatus = currentActivationType.getEffectiveStatus(); if (!expectedEffectiveStatus.equals(currentEffectiveStatus)) { PrismPropertyDefinition<ActivationStatusType> effectiveStatusPropertyDef = focusContext.getObjectDefinition().findPropertyDefinition(SchemaConstants.PATH_ASSIGNMENT_ACTIVATION_EFFECTIVE_STATUS);
@Test public void test220UserContainerReplace() throws Exception { final String TEST_NAME = "test220UserContainerReplace"; Task task = createTask(TEST_NAME); AssignmentType ass1 = new AssignmentType(prismContext); ass1.setActivation(new ActivationType(prismContext)); ass1.getActivation().setAdministrativeStatus(ActivationStatusType.DISABLED); ass1.getActivation().setValidFrom(XmlTypeConverter.createXMLGregorianCalendar(2010, 1, 1, 0, 0, 0)); ass1.setTargetRef(createObjectRef(ROLE_SUPERUSER_OID, ROLE)); ActivationType act1 = new ActivationType(prismContext); act1.setAdministrativeStatus(ActivationStatusType.DISABLED); ObjectDelta<?> delta = deltaFor(UserType.class) .item(UserType.F_NAME).replace("admin") .item(UserType.F_ACTIVATION).replace(act1) .item(UserType.F_ASSIGNMENT).replace(ass1) .asObjectDelta(USER_ADMINISTRATOR_OID); /// WHEN displayWhen(TEST_NAME); final Scene scene = visualizer.visualizeDelta((ObjectDelta<? extends ObjectType>) delta, task, task.getResult()); // THEN displayThen(TEST_NAME); display("scene", scene); // TODO some asserts }
public static boolean hasValidTo(ShadowType objectType) { ActivationType activation = objectType.getActivation(); return activation != null && activation.getValidTo() != null; }
@Test public void testAssignmentEquivalent() throws Exception { System.out.println("\n\n===[ testAssignmentEquivalent ]===\n"); PrismContext prismContext = PrismTestUtil.getPrismContext(); AssignmentType a1 = new AssignmentType(prismContext); ActivationType a1a = new ActivationType(prismContext); a1a.setValidFrom(XmlTypeConverter.createXMLGregorianCalendar(new Date())); a1a.setEffectiveStatus(ActivationStatusType.ENABLED); a1.setActivation(a1a); AssignmentType a2 = new AssignmentType(prismContext); ActivationType a2a = new ActivationType(prismContext); a2a.setEffectiveStatus(ActivationStatusType.ENABLED); a2.setActivation(a2a); // WHEN assertFalse(a1.equals(a2)); assertFalse(a1.asPrismContainerValue().equivalent(a2.asPrismContainerValue())); // a bit redundant assertFalse(a2.equals(a1)); assertFalse(a2.asPrismContainerValue().equivalent(a1.asPrismContainerValue())); // a bit redundant }