Search in sources :

Example 31 with ModelExecuteOptions

use of com.evolveum.midpoint.model.api.ModelExecuteOptions in project midpoint by Evolveum.

the class TestUserTemplate method test245ModifyUserRappLocalityUnderReconcile.

/**
 * Similar to test244, but also use reconcile option.
 * MID-3040
 */
@Test
public void test245ModifyUserRappLocalityUnderReconcile() throws Exception {
    // GIVEN
    Task task = getTestTask();
    OperationResult result = getTestOperationResult();
    PrismObject<UserType> userBefore = modelService.getObject(UserType.class, USER_RAPP_OID, null, task, result);
    display("User before", userBefore);
    ObjectDelta<UserType> objectDelta = createModifyUserReplaceDelta(USER_RAPP_OID, UserType.F_LOCALITY, PrismTestUtil.createPolyString("Six feet under"));
    Collection<ObjectDelta<? extends ObjectType>> deltas = MiscSchemaUtil.createCollection(objectDelta);
    ModelExecuteOptions options = executeOptions().reconcile();
    // WHEN
    modelService.executeChanges(deltas, options, task, result);
    // THEN
    result.computeStatus();
    TestUtil.assertSuccess(result);
    PrismObject<UserType> userAfter = modelService.getObject(UserType.class, USER_RAPP_OID, null, task, result);
    display("User after", userAfter);
    assertAssignedAccount(userAfter, RESOURCE_DUMMY_BLUE_OID);
    assertAssignedRole(userAfter, ROLE_RASTAMAN_OID);
    assertAssignments(userAfter, 2);
    UserType userAfterType = userAfter.asObjectable();
    assertLiveLinks(userAfter, 1);
    // There is a mapping "locality->timezone" in the object template (plus: High Seas/Six feet under)
    // but also a mapping "()->timezone" in Rastaman role (zero: Caribbean/Whatever)
    // Because the normal mapping is source-less, it is evaluated and its result is taken into account.
    assertEquals("Wrong timezone", "Caribbean/Whatever", userAfterType.getTimezone());
    assertEquals("Wrong locale", "WE", userAfterType.getLocale());
    assertEquals("Unexpected value of employeeNumber", "D3ADB33F", userAfterType.getEmployeeNumber());
    assertEquals("Wrong costCenter", "CC-RAPP", userAfterType.getCostCenter());
}
Also used : Task(com.evolveum.midpoint.task.api.Task) ModelExecuteOptions(com.evolveum.midpoint.model.api.ModelExecuteOptions) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) Test(org.testng.annotations.Test)

Example 32 with ModelExecuteOptions

use of com.evolveum.midpoint.model.api.ModelExecuteOptions in project midpoint by Evolveum.

the class MainObjectListPanel method deleteConfirmedPerformed.

private void deleteConfirmedPerformed(AjaxRequestTarget target, O objectToDelete) {
    List<O> objects = isAnythingSelected(target, objectToDelete);
    if (objects.isEmpty()) {
        return;
    }
    OperationResult result = new OperationResult(objects.size() == 1 ? OPERATION_DELETE_OBJECT : OPERATION_DELETE_OBJECTS);
    for (O object : objects) {
        OperationResult subResult = result.createSubresult(OPERATION_DELETE_OBJECT);
        try {
            Task task = getPageBase().createSimpleTask(OPERATION_DELETE_OBJECT);
            ObjectDelta delta = getPrismContext().deltaFactory().object().create(objectToDelete.getClass(), ChangeType.DELETE);
            delta.setOid(object.getOid());
            ExecuteChangeOptionsDto executeOptions = getExecuteOptions();
            ModelExecuteOptions options = executeOptions.createOptions(getPrismContext());
            LOGGER.debug("Using options {}.", executeOptions);
            getPageBase().getModelService().executeChanges(MiscUtil.createCollection(delta), options, task, subResult);
            subResult.computeStatus();
        } catch (Exception ex) {
            subResult.recomputeStatus();
            subResult.recordFatalError(getString("PageUsers.message.delete.fatalError"), ex);
            LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete user", ex);
        }
    }
    result.computeStatusComposite();
    clearCache();
    getPageBase().showResult(result);
    target.add(getFeedbackPanel());
    refreshTable(target);
    clearCache();
}
Also used : Task(com.evolveum.midpoint.task.api.Task) ExecuteChangeOptionsDto(com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsDto) ModelExecuteOptions(com.evolveum.midpoint.model.api.ModelExecuteOptions) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) RestartResponseException(org.apache.wicket.RestartResponseException)

Example 33 with ModelExecuteOptions

use of com.evolveum.midpoint.model.api.ModelExecuteOptions in project midpoint by Evolveum.

the class ExecuteChangeOptionsDto method createOptions.

@NotNull
public ModelExecuteOptions createOptions(PrismContext prismContext) {
    ModelExecuteOptions options = new ModelExecuteOptions(prismContext);
    options.force(isForce());
    options.reconcile(isReconcile());
    options.executeImmediatelyAfterApproval(!isExecuteAfterAllApprovals());
    options.tracingProfile(tracing);
    return options;
}
Also used : ModelExecuteOptions(com.evolveum.midpoint.model.api.ModelExecuteOptions) NotNull(org.jetbrains.annotations.NotNull)

Example 34 with ModelExecuteOptions

use of com.evolveum.midpoint.model.api.ModelExecuteOptions in project midpoint by Evolveum.

the class MappingImpl method determinePushChangesRequested.

@Override
protected boolean determinePushChangesRequested() {
    ModelContext<ObjectType> lensContext = ModelExpressionThreadLocalHolder.getLensContext();
    ModelExecuteOptions options = lensContext != null ? lensContext.getOptions() : null;
    return ModelExecuteOptions.isPushChanges(options);
}
Also used : ObjectType(com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType) ModelExecuteOptions(com.evolveum.midpoint.model.api.ModelExecuteOptions)

Example 35 with ModelExecuteOptions

use of com.evolveum.midpoint.model.api.ModelExecuteOptions in project midpoint by Evolveum.

the class TestMiscellaneous method test250SkippingApprovals.

@Test
public void test250SkippingApprovals() throws Exception {
    login(userAdministrator);
    Task task = getTestTask();
    OperationResult result = getTestOperationResult();
    given();
    setDefaultUserTemplate(null);
    unassignAllRoles(userJackOid);
    assertNotAssignedRole(userJackOid, ROLE_CAPTAIN.oid, result);
    when();
    ObjectDelta<? extends ObjectType> delta = prismContext.deltaFor(UserType.class).item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(ROLE_CAPTAIN.oid, ObjectTypes.ROLE, prismContext)).asObjectDelta(userJackOid);
    ModelExecuteOptions options = executeOptions().partialProcessing(new PartialProcessingOptionsType().approvals(PartialProcessingTypeType.SKIP));
    modelService.executeChanges(singletonList(delta), options, task, result);
    then();
    result.computeStatus();
    TestUtil.assertSuccess(result);
    assertAssignedRole(userJackOid, ROLE_CAPTAIN.oid, result);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) ModelExecuteOptions(com.evolveum.midpoint.model.api.ModelExecuteOptions) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test)

Aggregations

ModelExecuteOptions (com.evolveum.midpoint.model.api.ModelExecuteOptions)80 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)47 Task (com.evolveum.midpoint.task.api.Task)45 Test (org.testng.annotations.Test)30 ObjectDelta (com.evolveum.midpoint.prism.delta.ObjectDelta)21 SchemaException (com.evolveum.midpoint.util.exception.SchemaException)13 RestartResponseException (org.apache.wicket.RestartResponseException)6 ObjectType (com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType)5 ReferenceDelta (com.evolveum.midpoint.prism.delta.ReferenceDelta)4 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)4 ConfigurationException (com.evolveum.midpoint.util.exception.ConfigurationException)4 ObjectNotFoundException (com.evolveum.midpoint.util.exception.ObjectNotFoundException)4 SelectorOptions (com.evolveum.midpoint.schema.SelectorOptions)3 CommunicationException (com.evolveum.midpoint.util.exception.CommunicationException)3 ExpressionEvaluationException (com.evolveum.midpoint.util.exception.ExpressionEvaluationException)3 PolicyViolationException (com.evolveum.midpoint.util.exception.PolicyViolationException)3 SecurityViolationException (com.evolveum.midpoint.util.exception.SecurityViolationException)3 ExecuteChangeOptionsDto (com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsDto)3 ResourceType (com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType)3 NotNull (org.jetbrains.annotations.NotNull)3