mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)
68126: Merged V4.2-BUG-FIX (4.2.3) to HEAD-BUG-FIX (4.3/Cloud) 67461: Merged V4.1-BUG-FIX (4.1.9) to V4.2-BUG-FIX (4.2.3) 66886: Merged DEV to V4.1-BUG-FIX 66841 : MNT-9905 : Pending Invites created by one site manager aren't visible to other site managers Execute some operation: "Invite/Search", "Pending Invites/Search" and "Pending Invites/Search/Cancel" using 'system' user. Corrected code. Added test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@68411 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -72,6 +72,7 @@
|
|||||||
<property name="invitationService" ref="InvitationService"/>
|
<property name="invitationService" ref="InvitationService"/>
|
||||||
<property name="nodeService" ref="NodeService"/>
|
<property name="nodeService" ref="NodeService"/>
|
||||||
<property name="personService" ref="PersonService"/>
|
<property name="personService" ref="PersonService"/>
|
||||||
|
<property name="siteService" ref="SiteService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="InviteHelper" class="org.alfresco.repo.invitation.InviteHelper">
|
<bean id="InviteHelper" class="org.alfresco.repo.invitation.InviteHelper">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||||
*
|
*
|
||||||
* This file is part of Alfresco
|
* This file is part of Alfresco
|
||||||
*
|
*
|
||||||
@@ -22,12 +22,16 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.alfresco.repo.invitation.InvitationSearchCriteriaImpl;
|
import org.alfresco.repo.invitation.InvitationSearchCriteriaImpl;
|
||||||
import org.alfresco.repo.jscript.BaseScopableProcessorExtension;
|
import org.alfresco.repo.jscript.BaseScopableProcessorExtension;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||||
|
import org.alfresco.repo.site.SiteModel;
|
||||||
import org.alfresco.service.cmr.invitation.Invitation;
|
import org.alfresco.service.cmr.invitation.Invitation;
|
||||||
import org.alfresco.service.cmr.invitation.InvitationService;
|
import org.alfresco.service.cmr.invitation.InvitationService;
|
||||||
import org.alfresco.service.cmr.invitation.Invitation.ResourceType;
|
import org.alfresco.service.cmr.invitation.Invitation.ResourceType;
|
||||||
import org.alfresco.service.cmr.invitation.InvitationSearchCriteria.InvitationType;
|
import org.alfresco.service.cmr.invitation.InvitationSearchCriteria.InvitationType;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.security.PersonService;
|
import org.alfresco.service.cmr.security.PersonService;
|
||||||
|
import org.alfresco.service.cmr.site.SiteService;
|
||||||
import org.alfresco.util.ParameterCheck;
|
import org.alfresco.util.ParameterCheck;
|
||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
@@ -56,6 +60,8 @@ public class ScriptInvitationService extends BaseScopableProcessorExtension
|
|||||||
/** The Script Invitation Factory */
|
/** The Script Invitation Factory */
|
||||||
private ScriptInvitationFactory scriptInvitationFactory;
|
private ScriptInvitationFactory scriptInvitationFactory;
|
||||||
|
|
||||||
|
private SiteService siteService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the invitation service
|
* Set the invitation service
|
||||||
*
|
*
|
||||||
@@ -86,6 +92,11 @@ public class ScriptInvitationService extends BaseScopableProcessorExtension
|
|||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSiteService(SiteService siteService)
|
||||||
|
{
|
||||||
|
this.siteService = siteService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List the open invitations.
|
* List the open invitations.
|
||||||
* props specifies optional properties to constrain the search.
|
* props specifies optional properties to constrain the search.
|
||||||
@@ -120,7 +131,30 @@ public class ScriptInvitationService extends BaseScopableProcessorExtension
|
|||||||
crit.setInvitationType(InvitationType.valueOf(invitationType));
|
crit.setInvitationType(InvitationType.valueOf(invitationType));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Invitation> invitations = invitationService.searchInvitation(crit);
|
//MNT-9905 Pending Invites created by one site manager aren't visible to other site managers
|
||||||
|
String currentUser = AuthenticationUtil.getRunAsUser();
|
||||||
|
String siteShortName = crit.getResourceName();
|
||||||
|
List<Invitation> invitations;
|
||||||
|
|
||||||
|
if (siteShortName != null && (SiteModel.SITE_MANAGER).equals(siteService.getMembersRole(siteShortName, currentUser)))
|
||||||
|
{
|
||||||
|
final InvitationSearchCriteriaImpl criteria = crit;
|
||||||
|
|
||||||
|
RunAsWork<List<Invitation>> runAsSystem = new RunAsWork<List<Invitation>>()
|
||||||
|
{
|
||||||
|
public List<Invitation> doWork() throws Exception
|
||||||
|
{
|
||||||
|
return invitationService.searchInvitation(criteria);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
invitations = AuthenticationUtil.runAs(runAsSystem, AuthenticationUtil.getSystemUserName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
invitations = invitationService.searchInvitation(crit);
|
||||||
|
}
|
||||||
|
|
||||||
ScriptInvitation<?>[] ret = new ScriptInvitation[invitations.size()];
|
ScriptInvitation<?>[] ret = new ScriptInvitation[invitations.size()];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(Invitation item : invitations)
|
for(Invitation item : invitations)
|
||||||
|
Reference in New Issue
Block a user