public AssignmentType activation(ActivationType value) { setActivation(value); return this; }
@Test // MID-4111 public void test110DeputyAssignmentDisabled() throws Exception { final String TEST_NAME = "test110DeputyAssignmentDisabled"; executeDeputyLimitationsTest(TEST_NAME, null, (a) -> a.setActivation(new ActivationType().administrativeStatus(DISABLED))); }
@Test // MID-4111 public void test120DeputyAssignmentNotValid() throws Exception { final String TEST_NAME = "test120DeputyAssignmentNotValid"; executeDeputyLimitationsTest(TEST_NAME, null, (a) -> a.setActivation(new ActivationType().validTo("2017-03-31T00:00:00+01:00"))); }
protected <F extends FocusType> ContainerDelta<AssignmentType> createAssignmentModification(Class<F> type, QName elementName, String roleOid, QName refType, QName relation, PrismContainer<?> extension, ActivationType activationType, boolean add) throws SchemaException { try { return createAssignmentModification(type, elementName, roleOid, refType, relation, assignment -> { if (extension != null) { try { assignment.asPrismContainerValue().add(extension.clone()); } catch (SchemaException e) { throw new TunnelException(e); } } assignment.setActivation(activationType); }, add); } catch (TunnelException te) { throw (SchemaException)te.getCause(); } }
private void disableAssignments(String text) { for (String assignmentText : getList(text)) { AssignmentType assignment = findAssignmentOrInducement(assignmentText); if (assignment.getActivation() == null) { assignment.setActivation(new ActivationType(prismContext)); } assignment.getActivation().setAdministrativeStatus(ActivationStatusType.DISABLED); } }
ActivationType activation = new ActivationType(); activation.setAdministrativeStatus(ActivationStatusType.DISABLED); assignmentBefore.setActivation(activation); userBefore.asObjectable().getAssignment().add(assignmentBefore); activation = new ActivationType(); activation.setAdministrativeStatus(ActivationStatusType.ENABLED); assignmentAfter.setActivation(activation); userAfter.asObjectable().getAssignment().add(assignmentAfter); activation = new ActivationType(); activation.setAdministrativeStatus(null); assignmentAfter.setActivation(activation); userDelta = assignmentBefore.asPrismContainerValue().diff(assignmentAfter.asPrismContainerValue());
@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 }
@Test(enabled = FIRST_PART) public void test030AssignR1ToJackProjectorDisabled() throws Exception { final String TEST_NAME = "test030AssignR1ToJackProjectorDisabled"; TestUtil.displayTestTitle(this, TEST_NAME); // GIVEN Task task = taskManager.createTaskInstance(TestAssignmentProcessor.class.getName() + "." + TEST_NAME); OperationResult result = task.getResult(); LensContext<UserType> context = createContextForRoleAssignment(USER_JACK_OID, ROLE_R1_OID, null, a -> a.setActivation(ActivationUtil.createDisabled()), result); // WHEN projector.project(context, "", task, result); // THEN display("Output context", context); result.computeStatus(); assertSuccess("Projector failed (result)", result); // MID-3679 assertEquals("Wrong # of parentOrgRef entries", 0, context.getFocusContext().getObjectNew().asObjectable().getParentOrgRef().size()); assertEquals("Wrong # of roleMembershipRef entries", 0, context.getFocusContext().getObjectNew().asObjectable().getRoleMembershipRef().size()); }
private <F extends FocusType> void applyAssignmentValueMetadataAdd(LensContext<F> context, PrismContainerValue<AssignmentType> assignmentContainerValue, String desc, XMLGregorianCalendar now, Task task, OperationResult result) throws SchemaException { AssignmentType assignmentType = assignmentContainerValue.asContainerable(); MetadataType metadataType = assignmentType.getMetadata(); if (metadataType == null) { metadataType = new MetadataType(); assignmentType.setMetadata(metadataType); } transplantRequestMetadata(context, metadataType); // This applies the effective status only to assignments that are completely new (whole container is added/replaced) // The effectiveStatus of existing assignments is processed in FocusProcessor.processAssignmentActivation() // We cannot process that here. Because this code is not even triggered when there is no delta. So recompute will not work. ActivationType activationType = assignmentType.getActivation(); ActivationStatusType effectiveStatus = activationComputer.getEffectiveStatus(assignmentType.getLifecycleState(), activationType, null); if (activationType == null) { activationType = new ActivationType(); assignmentType.setActivation(activationType); } activationType.setEffectiveStatus(effectiveStatus); applyCreateMetadata(context, metadataType, now, task); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Adding operational data {} to assignment cval ({}):\nMETADATA:\n{}\nACTIVATION:\n{}", metadataType, desc, assignmentContainerValue.debugDump(1), activationType.asPrismContainerValue().debugDump(1)); } }
userDrakeType.getAssignment().add(dummyAssignmentType1); dummyAssignmentType1.setTargetRef(ObjectTypeUtil.createObjectRef(ROLE_SUPERUSER_OID, ObjectTypes.ROLE)); dummyAssignmentType1.setActivation(activationType.clone()); dummyAssignmentType2.setActivation(activationType.clone()); dummyAssignmentType2.setDescription("just to differentiate");
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));
@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 }
assignmentType.setActivation(activationType); userTypeBefore.getAssignment().add(assignmentType); display("User before", userBefore);
@Test public void test210UserDeltaContainers() throws Exception { final String TEST_NAME = "test210UserDeltaContainers"; Task task = createTask(TEST_NAME); AssignmentType ass1 = new AssignmentType(prismContext); ass1.setActivation(new ActivationType(prismContext)); ass1.getActivation().setAdministrativeStatus(ActivationStatusType.ENABLED); ass1.getActivation().setValidTo(XmlTypeConverter.createXMLGregorianCalendar(2017, 1, 1, 0, 0, 0)); ass1.setTargetRef(createObjectRef(ROLE_SUPERUSER_OID, ROLE)); ObjectDelta<?> delta = deltaFor(UserType.class) .item(UserType.F_NAME).replace("admin") .item(UserType.F_ACTIVATION, ActivationType.F_ADMINISTRATIVE_STATUS).replace(ActivationStatusType.ENABLED) .item(UserType.F_ASSIGNMENT, 1, AssignmentType.F_TARGET_REF).replace(createObjectRef("123", ROLE).asReferenceValue()) .item(UserType.F_ASSIGNMENT, 1, AssignmentType.F_DESCRIPTION).add("suspicious") .item(UserType.F_ASSIGNMENT).add(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 }
assignmentType.setActivation(ActivationUtil.createDisabled());
assignDeputy(USER_BARBOSSA_OID, USER_JACK_OID, assignment -> assignment.setActivation(activationType), task, result);
ActivationType activation1e = new ActivationType(); activation1e.setEffectiveStatus(ActivationStatusType.ENABLED); a1e.setActivation(activation1e);
ActivationType activation1e = new ActivationType(); activation1e.setEffectiveStatus(ActivationStatusType.ENABLED); a1e.setActivation(activation1e);
(task, result) -> { assignDeputy(USER_BARBOSSA_OID, USER_JACK_OID, assignment -> assignment.setActivation(activationType), task, result); }); (task, result) -> { unassignDeputy(USER_BARBOSSA_OID, USER_JACK_OID, assignment -> assignment.setActivation(activationType), task, result); });
(task, result) -> { assignDeputy(USER_BARBOSSA_OID, USER_JACK_OID, assignment -> assignment.setActivation(activationType), task, result); }); (task, result) -> { unassignDeputy(USER_BARBOSSA_OID, USER_JACK_OID, assignment -> assignment.setActivation(activationType), task, result); });