Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)

67754: Merged V4.2-BUG-FIX (4.2.3) to HEAD-BUG-FIX (4.3/Cloud)
      66874: Merged DEV to V4.2-BUG-FIX (4.2.3)
         66788 : MNT-10411 : Wrong status returned when  calling webscript api/invite/{inviteId}/{InviteTicket}?inviteeUserName={invitee uid}
            - Return propper invitation status. Fix related test


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@68389 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2014-04-30 16:03:47 +00:00
parent c351fa81e9
commit 0b6c361dae
2 changed files with 88 additions and 2 deletions

View File

@@ -19,8 +19,10 @@
package org.alfresco.repo.web.scripts.invite;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.invitation.WorkflowModelNominatedInvitation;
import org.alfresco.repo.invitation.site.InviteInfo;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.template.TemplateNode;
@@ -36,6 +38,8 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptException;
@@ -163,7 +167,7 @@ public class InviteByTicket extends DeclarativeWebScript
// get the site info
SiteInfo siteInfo = siteService.getSite(invitation.getResourceName());
String invitationStatus = InviteInfo.INVITATION_STATUS_PENDING;
String invitationStatus = getInvitationStatus(invitation);
NodeRef inviterRef = personService.getPerson(invitation.getInviterUserName());
TemplateNode inviterPerson = null;
@@ -193,5 +197,31 @@ public class InviteByTicket extends DeclarativeWebScript
return ret;
}
private String getInvitationStatus(NominatedInvitation invitation)
{
String invitee = invitation.getInviteeUserName();
String site = invitation.getResourceName();
// check is invitee is site member
boolean isUserMember = serviceRegistry.getSiteService().isMember(site, invitee);
WorkflowTaskQuery query = new WorkflowTaskQuery();
query.setTaskName(WorkflowModelNominatedInvitation.WF_TASK_ACTIVIT_INVITE_PENDING);
query.setProcessId(invitation.getInviteId());
// query current workflow's task activitiInvitePendingTask
List<WorkflowTask> pendingInvitationTasks = serviceRegistry.getWorkflowService().queryTasks(query, false);
// if it's here - pending invitation
if (!pendingInvitationTasks.isEmpty())
{
return InviteInfo.INVITATION_STATUS_PENDING;
}
else if (isUserMember)
{
return InviteInfo.INVITATION_STATUS_ACCEPTED;
}
else
{
return InviteInfo.INVITATION_STATUS_REJECTED;
}
}
}