From 81ba1715c49e9dc3b4648b3c602b19a43a9c2976 Mon Sep 17 00:00:00 2001 From: Frederik Heremans Date: Tue, 2 Jul 2013 12:55:34 +0000 Subject: [PATCH] CLOUD-1824: using additional processVariableValueEquals() for pooled tasks filter when workflow-definitions are shared across tenants in MT-env (cloud) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@51967 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../activiti/ActivitiWorkflowEngine.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/source/java/org/alfresco/repo/workflow/activiti/ActivitiWorkflowEngine.java b/source/java/org/alfresco/repo/workflow/activiti/ActivitiWorkflowEngine.java index 219861b1e5..166a1e73e0 100644 --- a/source/java/org/alfresco/repo/workflow/activiti/ActivitiWorkflowEngine.java +++ b/source/java/org/alfresco/repo/workflow/activiti/ActivitiWorkflowEngine.java @@ -1469,7 +1469,15 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine private void addTasksForCandidateGroups(List groupNames, Map resultingTasks) { if(groupNames != null && groupNames.size() > 0) { - List tasks = taskService.createTaskQuery().taskCandidateGroupIn(groupNames).list(); + + TaskQuery query = taskService.createTaskQuery().taskCandidateGroupIn(groupNames); + + // Additional filtering on the tenant-property in case workflow-definitions are shared across tenants + if(!activitiUtil.isMultiTenantWorkflowDeploymentEnabled() && tenantService.isEnabled()) { + query.processVariableValueEquals(ActivitiConstants.VAR_TENANT_DOMAIN, TenantUtil.getCurrentDomain()); + } + + List tasks =query.list(); for(Task task : tasks) { resultingTasks.put(task.getId(), task); @@ -1479,7 +1487,14 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine private void addTasksForCandidateUser(String userName, Map resultingTasks) { - List tasks = taskService.createTaskQuery().taskCandidateUser(userName).list(); + TaskQuery query = taskService.createTaskQuery().taskCandidateUser(userName); + + // Additional filtering on the tenant-property in case workflow-definitions are shared across tenants + if(!activitiUtil.isMultiTenantWorkflowDeploymentEnabled() && tenantService.isEnabled()) { + query.processVariableValueEquals(ActivitiConstants.VAR_TENANT_DOMAIN, TenantUtil.getCurrentDomain()); + } + + List tasks = query.list(); for(Task task : tasks) { resultingTasks.put(task.getId(), task);