mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user