if (isInitiatorOrAssignee(wt, currentUser) || fromSameParallelReviewWorkflow(wt, currentUser) || isStartTaskOfProcessInvolvedIn(wt, currentUser)) WorkflowTask wt = (WorkflowTask) result; if (isInitiatorOrAssignee(wt, currentUser) || isUserPartOfProcess(wt, currentUser)) if (isInitiatorOrAssignee(taskToUpdate, currentUser)) if (isInitiatorOrAssignee(wt, currentUser) || fromSameParallelReviewWorkflow(wt, currentUser) || isStartTaskOfProcessInvolvedIn(wt, currentUser))
private Collection<NodeRef> getUserGroupRefs(Object o) { List<NodeRef> result = new ArrayList<NodeRef>(); if (o != null && o instanceof Collection) { for (Iterator<?> it = ((Collection<?>) o).iterator(); it.hasNext();) { result.add(getUserGroupRef(it.next())); } } return result; }
accessUseres.add(getUserGroupRef(props.get(WorkflowModel.ASSOC_ASSIGNEE))); accessUseres.add(getUserGroupRef(props.get(WorkflowModel.ASSOC_GROUP_ASSIGNEE))); accessUseres.addAll(getUserGroupRefs(props.get(WorkflowModel.ASSOC_GROUP_ASSIGNEES))); accessUseres.addAll(getUserGroupRefs(props.get(WorkflowModel.ASSOC_ASSIGNEES))); accessUseres.addAll(getUserGroupRefs(wt.getProperties().get(WorkflowModel.ASSOC_POOLED_ACTORS))); accessUseres.add(wt.getPath().getInstance().getInitiator());
private boolean fromSameParallelReviewWorkflow(WorkflowTask wt, String userName) { // check whether this is parallel review workflow, "parallel" will match all parallel workflows (any engine) if (wt.getPath().getInstance().getDefinition().getName().toLowerCase().contains("parallel")) { WorkflowTaskQuery tasksQuery = new WorkflowTaskQuery(); tasksQuery.setTaskState(null); tasksQuery.setActive(null); tasksQuery.setProcessId(wt.getPath().getInstance().getId()); List<WorkflowTask> allWorkflowTasks = workflowService.queryTasks(tasksQuery, true); for (WorkflowTask task : allWorkflowTasks) { if (isInitiatorOrAssignee(task, userName)) { // if at list one match then user has task from the same workflow return true; } } } return false; }
private boolean isStartTaskOfProcessInvolvedIn(WorkflowTask wt, String userName) { return wt.getId().contains(ActivitiConstants.START_TASK_PREFIX) && isUserPartOfProcess(wt, userName); }
accessUseres.add(getUserGroupRef(props.get(WorkflowModel.ASSOC_ASSIGNEE))); accessUseres.add(getUserGroupRef(props.get(WorkflowModel.ASSOC_GROUP_ASSIGNEE))); accessUseres.addAll(getUserGroupRefs(props.get(WorkflowModel.ASSOC_GROUP_ASSIGNEES))); accessUseres.addAll(getUserGroupRefs(props.get(WorkflowModel.ASSOC_ASSIGNEES))); accessUseres.addAll(getUserGroupRefs(wt.getProperties().get(WorkflowModel.ASSOC_POOLED_ACTORS))); accessUseres.add(wt.getPath().getInstance().getInitiator());
private boolean fromSameParallelReviewWorkflow(WorkflowTask wt, String userName) { // check whether this is parallel review workflow, "parallel" will match all parallel workflows (any engine) if (wt.getPath().getInstance().getDefinition().getName().toLowerCase().contains("parallel")) { WorkflowTaskQuery tasksQuery = new WorkflowTaskQuery(); tasksQuery.setTaskState(null); tasksQuery.setActive(null); tasksQuery.setProcessId(wt.getPath().getInstance().getId()); List<WorkflowTask> allWorkflowTasks = workflowService.queryTasks(tasksQuery, true); for (WorkflowTask task : allWorkflowTasks) { if (isInitiatorOrAssignee(task, userName)) { // if at list one match then user has task from the same workflow return true; } } } return false; }
private boolean isStartTaskOfProcessInvolvedIn(WorkflowTask wt, String userName) { return wt.getId().contains(ActivitiConstants.START_TASK_PREFIX) && isUserPartOfProcess(wt, userName); }
if (isInitiatorOrAssignee(wt, currentUser) || fromSameParallelReviewWorkflow(wt, currentUser) || isStartTaskOfProcessInvolvedIn(wt, currentUser)) WorkflowTask wt = (WorkflowTask) result; if (isInitiatorOrAssignee(wt, currentUser) || isUserPartOfProcess(wt, currentUser)) if (isInitiatorOrAssignee(taskToUpdate, currentUser)) if (isInitiatorOrAssignee(wt, currentUser) || fromSameParallelReviewWorkflow(wt, currentUser) || isStartTaskOfProcessInvolvedIn(wt, currentUser))
private boolean isUserPartOfProcess(WorkflowTask wt, String userName) { WorkflowTaskQuery tasksQuery = new WorkflowTaskQuery(); tasksQuery.setTaskState(null); tasksQuery.setActive(null); tasksQuery.setProcessId(wt.getPath().getInstance().getId()); List<WorkflowTask> allWorkflowTasks = workflowService.queryTasks(tasksQuery, true); for (WorkflowTask task : allWorkflowTasks) { if (isInitiatorOrAssignee(task, userName)) { // if at list one match then user has task from the same workflow return true; } } return false; }
private Collection<NodeRef> getUserGroupRefs(Object o) { List<NodeRef> result = new ArrayList<NodeRef>(); if (o != null && o instanceof Collection) { for (Iterator<?> it = ((Collection<?>) o).iterator(); it.hasNext();) { result.add(getUserGroupRef(it.next())); } } return result; }
private boolean isUserPartOfProcess(WorkflowTask wt, String userName) { WorkflowTaskQuery tasksQuery = new WorkflowTaskQuery(); tasksQuery.setTaskState(null); tasksQuery.setActive(null); tasksQuery.setProcessId(wt.getPath().getInstance().getId()); List<WorkflowTask> allWorkflowTasks = workflowService.queryTasks(tasksQuery, true); for (WorkflowTask task : allWorkflowTasks) { if (isInitiatorOrAssignee(task, userName)) { // if at list one match then user has task from the same workflow return true; } } return false; }