Search in sources :

Example 21 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class AbstractAssignmentTest method assertActualOwner.

protected void assertActualOwner(Task task, String expectedActualOwner) {
    User actualOwner = task.getTaskData().getActualOwner();
    assertThat(actualOwner).as("No actual owner when expected").isNotNull();
    assertThat(actualOwner.getId()).as("Not matching actual owner").isEqualTo(expectedActualOwner);
}
Also used : User(org.kie.api.task.model.User)

Example 22 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class BusinessRuleAssignmentTest method testAssignmentsWhenNoRuleWasFired.

@Test
public void testAssignmentsWhenNoRuleWasFired() throws Exception {
    String str = "(with (new Task()) { priority = 51, taskData = (with( new TaskData()) { } ), ";
    str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Ben Dover') ],businessAdministrators = [ new User('Administrator') ],}),";
    str += "name =  'Not Bobbas tasks' })";
    Task task = TaskFactory.evalTask(new StringReader(str));
    assertPotentialOwners(task, 1);
    long taskId = taskService.addTask(task, Collections.emptyMap());
    task = taskService.getTaskById(taskId);
    assertPotentialOwners(task, 0);
    User actualOwner = task.getTaskData().getActualOwner();
    Assertions.assertThat(actualOwner).isNull();
}
Also used : Task(org.kie.api.task.model.Task) User(org.kie.api.task.model.User) StringReader(java.io.StringReader) Test(org.junit.Test)

Example 23 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class MVELLifeCycleManager method taskOperation.

public void taskOperation(final Operation operation, final long taskId, final String userId, final String targetEntityId, final Map<String, Object> data, List<String> groupIds, OrganizationalEntity... entities) throws TaskException {
    try {
        final List<OperationCommand> commands = operations.get(operation);
        Task task = persistenceContext.findTask(taskId);
        if (task == null) {
            String errorMessage = "Task '" + taskId + "' not found";
            throw new PermissionDeniedException(errorMessage);
        }
        String deploymentId = (String) context.get(EnvironmentName.DEPLOYMENT_ID);
        if (deploymentId != null && !deploymentId.equals(task.getTaskData().getDeploymentId())) {
            throw new IllegalStateException("Task instance " + task.getId() + " is owned by another deployment expected " + task.getTaskData().getDeploymentId() + " found " + deploymentId);
        }
        // automatically load task variables on each operation if the event manager is activated
        if (EventManagerProvider.getInstance().isActive()) {
            taskContentService.loadTaskVariables(task);
        }
        User user = persistenceContext.findUser(userId);
        OrganizationalEntity targetEntity = null;
        if (targetEntityId != null && !targetEntityId.equals("")) {
            targetEntity = persistenceContext.findOrgEntity(targetEntityId);
        }
        getExecutionErrorHandler().processing(task);
        switch(operation) {
            case Activate:
                {
                    taskEventSupport.fireBeforeTaskActivated(task, context);
                    break;
                }
            case Claim:
                {
                    taskEventSupport.fireBeforeTaskClaimed(task, context);
                    break;
                }
            case Complete:
                {
                    taskEventSupport.fireBeforeTaskCompleted(task, context);
                    break;
                }
            case Delegate:
                {
                    taskEventSupport.fireBeforeTaskDelegated(task, context);
                    break;
                }
            case Exit:
                {
                    taskEventSupport.fireBeforeTaskExited(task, context);
                    break;
                }
            case Fail:
                {
                    if (data != null) {
                        FaultData faultData = ContentMarshallerHelper.marshalFault(task, data, null);
                        Content content = TaskModelProvider.getFactory().newContent();
                        ((InternalContent) content).setContent(faultData.getContent());
                        persistenceContext.persistContent(content);
                        persistenceContext.setFaultToTask(content, faultData, task);
                    }
                    taskEventSupport.fireBeforeTaskFailed(task, context);
                    break;
                }
            case Forward:
                {
                    taskEventSupport.fireBeforeTaskForwarded(task, context);
                    break;
                }
            case Nominate:
                {
                    taskEventSupport.fireBeforeTaskNominated(task, context);
                    break;
                }
            case Release:
                {
                    taskEventSupport.fireBeforeTaskReleased(task, context);
                    break;
                }
            case Resume:
                {
                    taskEventSupport.fireBeforeTaskResumed(task, context);
                    break;
                }
            case Skip:
                {
                    taskEventSupport.fireBeforeTaskSkipped(task, context);
                    break;
                }
            case Start:
                {
                    taskEventSupport.fireBeforeTaskStarted(task, context);
                    break;
                }
            case Stop:
                {
                    taskEventSupport.fireBeforeTaskStopped(task, context);
                    break;
                }
            case Suspend:
                {
                    taskEventSupport.fireBeforeTaskSuspended(task, context);
                    break;
                }
        }
        evalCommand(operation, commands, task, user, targetEntity, groupIds, entities);
        persistenceContext.updateTask(task);
        switch(operation) {
            case Activate:
                {
                    taskEventSupport.fireAfterTaskActivated(task, context);
                    break;
                }
            case Claim:
                {
                    taskEventSupport.fireAfterTaskClaimed(task, context);
                    break;
                }
            case Complete:
                {
                    if (data != null) {
                        taskContentService.addOutputContent(taskId, data);
                    }
                    taskEventSupport.fireAfterTaskCompleted(task, context);
                    break;
                }
            case Delegate:
                {
                    // This is a really bad hack to execut the correct behavior
                    ((InternalTaskData) task.getTaskData()).setStatus(Status.Reserved);
                    taskEventSupport.fireAfterTaskDelegated(task, context);
                    break;
                }
            case Exit:
                {
                    taskEventSupport.fireAfterTaskExited(task, context);
                    break;
                }
            case Fail:
                {
                    taskEventSupport.fireAfterTaskFailed(task, context);
                    break;
                }
            case Forward:
                {
                    invokeAssignmentService(task, context, userId);
                    taskEventSupport.fireAfterTaskForwarded(task, context);
                    break;
                }
            case Nominate:
                {
                    invokeAssignmentService(task, context, userId);
                    taskEventSupport.fireAfterTaskNominated(task, context);
                    break;
                }
            case Release:
                {
                    invokeAssignmentService(task, context, userId);
                    taskEventSupport.fireAfterTaskReleased(task, context);
                    break;
                }
            case Resume:
                {
                    taskEventSupport.fireAfterTaskResumed(task, context);
                    break;
                }
            case Start:
                {
                    taskEventSupport.fireAfterTaskStarted(task, context);
                    break;
                }
            case Skip:
                {
                    taskEventSupport.fireAfterTaskSkipped(task, context);
                    break;
                }
            case Stop:
                {
                    taskEventSupport.fireAfterTaskStopped(task, context);
                    break;
                }
            case Suspend:
                {
                    taskEventSupport.fireAfterTaskSuspended(task, context);
                    break;
                }
        }
        getExecutionErrorHandler().processed(task);
    } catch (RuntimeException re) {
        throw re;
    }
}
Also used : Task(org.kie.api.task.model.Task) User(org.kie.api.task.model.User) FaultData(org.kie.internal.task.api.model.FaultData) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) Content(org.kie.api.task.model.Content) InternalContent(org.kie.internal.task.api.model.InternalContent) PermissionDeniedException(org.jbpm.services.task.exception.PermissionDeniedException)

Example 24 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class JaxbTask method copyOrganizationalEntityList.

private List<OrganizationalEntity> copyOrganizationalEntityList(List<OrganizationalEntity> jaxbOrgEntList) {
    if (jaxbOrgEntList == null) {
        return null;
    }
    List<OrganizationalEntity> orgEntList = new ArrayList<OrganizationalEntity>(jaxbOrgEntList.size());
    for (OrganizationalEntity jaxbOrgEnt : jaxbOrgEntList) {
        if (jaxbOrgEnt instanceof User) {
            User user = createUser(jaxbOrgEnt.getId());
            orgEntList.add(user);
        } else if (jaxbOrgEnt instanceof Group) {
            Group group = createGroup(jaxbOrgEnt.getId());
            orgEntList.add(group);
        }
    }
    return orgEntList;
}
Also used : Group(org.kie.api.task.model.Group) User(org.kie.api.task.model.User) OrganizationalEntity(org.kie.api.task.model.OrganizationalEntity) ArrayList(java.util.ArrayList)

Example 25 with User

use of org.kie.api.task.model.User in project jbpm by kiegroup.

the class TaskIdentityServiceImpl method removeUser.

public void removeUser(String userId) {
    User user = persistenceContext.findUser(userId);
    persistenceContext.remove(user);
}
Also used : User(org.kie.api.task.model.User)

Aggregations

User (org.kie.api.task.model.User)83 OrganizationalEntity (org.kie.api.task.model.OrganizationalEntity)52 Test (org.junit.Test)44 InternalTask (org.kie.internal.task.api.model.InternalTask)38 ArrayList (java.util.ArrayList)35 InternalOrganizationalEntity (org.kie.internal.task.api.model.InternalOrganizationalEntity)33 Task (org.kie.api.task.model.Task)31 Group (org.kie.api.task.model.Group)27 InternalPeopleAssignments (org.kie.internal.task.api.model.InternalPeopleAssignments)27 InternalTaskData (org.kie.internal.task.api.model.InternalTaskData)20 StringReader (java.io.StringReader)17 HashMap (java.util.HashMap)14 InputStreamReader (java.io.InputStreamReader)11 Reader (java.io.Reader)11 WorkItemImpl (org.drools.core.process.instance.impl.WorkItemImpl)11 ContentData (org.kie.internal.task.api.model.ContentData)11 InternalContent (org.kie.internal.task.api.model.InternalContent)11 Date (java.util.Date)10 List (java.util.List)10 CountDownTaskEventListener (org.jbpm.services.task.util.CountDownTaskEventListener)10