From 1b941f86b26f2d9cf9c8380d475230b9211760c2 Mon Sep 17 00:00:00 2001 From: N Smith Date: Wed, 24 Aug 2011 12:56:57 +0000 Subject: [PATCH] Fixed failing InviteServiceTest git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30024 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../invitation-moderated-workflow-model.xml | 6 +-- .../invitation-nominated-workflow-model.xml | 2 +- .../invitation/InvitationServiceImpl.java | 6 ++- .../repo/invitation/InviteHelper.java | 45 +------------------ 4 files changed, 11 insertions(+), 48 deletions(-) diff --git a/config/alfresco/workflow/invitation-moderated-workflow-model.xml b/config/alfresco/workflow/invitation-moderated-workflow-model.xml index 2c24a50a89..d31b18ea1c 100644 --- a/config/alfresco/workflow/invitation-moderated-workflow-model.xml +++ b/config/alfresco/workflow/invitation-moderated-workflow-model.xml @@ -40,14 +40,14 @@ d:text - Reject + reject - Approve - Reject + approve + reject diff --git a/config/alfresco/workflow/invitation-nominated-workflow-model.xml b/config/alfresco/workflow/invitation-nominated-workflow-model.xml index 3f0847b0dd..76ee215c3a 100644 --- a/config/alfresco/workflow/invitation-nominated-workflow-model.xml +++ b/config/alfresco/workflow/invitation-nominated-workflow-model.xml @@ -62,7 +62,7 @@ d:text - Reject + reject diff --git a/source/java/org/alfresco/repo/invitation/InvitationServiceImpl.java b/source/java/org/alfresco/repo/invitation/InvitationServiceImpl.java index b59c53d8d7..860af5bfb0 100644 --- a/source/java/org/alfresco/repo/invitation/InvitationServiceImpl.java +++ b/source/java/org/alfresco/repo/invitation/InvitationServiceImpl.java @@ -38,7 +38,6 @@ import org.alfresco.repo.security.authentication.PasswordGenerator; import org.alfresco.repo.security.authentication.UserNameGenerator; import org.alfresco.repo.site.SiteModel; import org.alfresco.repo.workflow.WorkflowModel; -import org.alfresco.repo.workflow.activiti.ActivitiConstants; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.invitation.Invitation; import org.alfresco.service.cmr.invitation.InvitationException; @@ -414,6 +413,11 @@ public class InvitationServiceImpl implements InvitationService, NodeServicePoli private Invitation cancelNominatedInvitation(WorkflowTask startTask) { NominatedInvitation invitation = getNominatedInvitation(startTask); + String currentUserName = this.authenticationService.getCurrentUserName(); + if (false == currentUserName.equals(invitation.getInviterUserName())) + { + checkManagerRole(currentUserName, invitation.getResourceType(), invitation.getResourceName()); + } endInvitation(startTask, WorkflowModelNominatedInvitation.WF_TRANSITION_CANCEL, null, WorkflowModelNominatedInvitation.WF_TASK_INVITE_PENDING, WorkflowModelNominatedInvitation.WF_TASK_ACTIVIT_INVITE_PENDING); diff --git a/source/java/org/alfresco/repo/invitation/InviteHelper.java b/source/java/org/alfresco/repo/invitation/InviteHelper.java index 799263dc71..0422b1294b 100644 --- a/source/java/org/alfresco/repo/invitation/InviteHelper.java +++ b/source/java/org/alfresco/repo/invitation/InviteHelper.java @@ -18,6 +18,8 @@ */ package org.alfresco.repo.invitation; +import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.WF_TASK_ACTIVIT_INVITE_PENDING; +import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.WF_TASK_INVITE_PENDING; import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarAcceptUrl; import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarInviteTicket; import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarInviteeGenPassword; @@ -28,8 +30,6 @@ import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVa import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarRole; import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarServerPath; import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.wfVarWorkflowInstanceId; -import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.WF_TASK_INVITE_PENDING; -import static org.alfresco.repo.invitation.WorkflowModelNominatedInvitation.WF_TASK_ACTIVIT_INVITE_PENDING; import java.io.Serializable; import java.util.Arrays; @@ -63,7 +63,6 @@ import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowTask; -import org.alfresco.service.cmr.workflow.WorkflowTaskQuery; import org.alfresco.service.cmr.workflow.WorkflowTaskState; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; @@ -291,46 +290,6 @@ public class InviteHelper implements InitializingBean }, AuthenticationUtil.getSystemUserName()); } - /** - * Complete the specified Invite Workflow Task for the invite workflow - * instance associated with the given invite ID, and follow the given - * transition upon completing the task - * - * @param inviteId the invite ID of the invite workflow instance for which - * we want to complete the given task - * @param fullTaskName qualified name of invite workflow task to complete - * @param transitionId the task transition to take on completion of - * the task (or null, for the default transition) - * @param workflowService TODO - */ - public static void completeInviteTask(String inviteId, QName fullTaskName, String transitionId, WorkflowService workflowService) - { - // create workflow task query - WorkflowTaskQuery wfTaskQuery = new WorkflowTaskQuery(); - - // set the given invite ID as the workflow process ID in the workflow query - wfTaskQuery.setProcessId(inviteId); - - // find incomplete invite workflow tasks with given task name - wfTaskQuery.setActive(Boolean.TRUE); - wfTaskQuery.setTaskState(WorkflowTaskState.IN_PROGRESS); - wfTaskQuery.setTaskName(fullTaskName); - - // set process name to "wf:invite" so that only - // invite workflow instances are considered by this query - wfTaskQuery.setProcessName(WorkflowModelNominatedInvitation.WF_PROCESS_INVITE); - - // query for invite workflow tasks with the constructed query - List wf_invite_tasks = workflowService - .queryTasks(wfTaskQuery); - - // end all tasks found with this name - for (WorkflowTask workflowTask : wf_invite_tasks) - { - workflowService.endTask(workflowTask.getId(), transitionId); - } - } - /** * @param executionVariables */