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)
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:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -21,13 +21,16 @@ package org.alfresco.repo.web.scripts.invite;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.repo.site.SiteModel;
|
||||
import org.alfresco.service.cmr.invitation.Invitation;
|
||||
import org.alfresco.service.cmr.invitation.InvitationExceptionForbidden;
|
||||
import org.alfresco.service.cmr.invitation.InvitationExceptionUserError;
|
||||
import org.alfresco.service.cmr.invitation.InvitationService;
|
||||
import org.alfresco.service.cmr.invitation.NominatedInvitation;
|
||||
import org.alfresco.util.UrlUtil;
|
||||
import org.alfresco.service.cmr.site.SiteService;
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
@@ -70,12 +73,17 @@ public class Invite extends DeclarativeWebScript
|
||||
|
||||
// services
|
||||
private InvitationService invitationService;
|
||||
private SiteService siteService;
|
||||
|
||||
public void setInvitationService(InvitationService invitationService)
|
||||
{
|
||||
this.invitationService = invitationService;
|
||||
}
|
||||
|
||||
public void setSiteService(SiteService siteService)
|
||||
{
|
||||
this.siteService = siteService;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
@@ -260,7 +268,31 @@ public class Invite extends DeclarativeWebScript
|
||||
// process action 'cancel' with provided parameters
|
||||
try
|
||||
{
|
||||
invitationService.cancel(inviteId);
|
||||
//MNT-9905 Pending Invites created by one site manager aren't visible to other site managers
|
||||
String currentUser = AuthenticationUtil.getRunAsUser();
|
||||
String siteShortName = req.getParameter(PARAM_SITE_SHORT_NAME);
|
||||
|
||||
if (siteShortName != null && (SiteModel.SITE_MANAGER).equals(siteService.getMembersRole(siteShortName, currentUser)))
|
||||
{
|
||||
final String invId = inviteId;
|
||||
|
||||
RunAsWork<Void> runAsSystem = new RunAsWork<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void doWork() throws Exception
|
||||
{
|
||||
invitationService.cancel(invId);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
AuthenticationUtil.runAs(runAsSystem, AuthenticationUtil.getSystemUserName());
|
||||
}
|
||||
else
|
||||
{
|
||||
invitationService.cancel(inviteId);
|
||||
}
|
||||
|
||||
// add model properties for template to render
|
||||
model.put(MODEL_PROP_KEY_ACTION, ACTION_CANCEL);
|
||||
model.put(MODEL_PROP_KEY_INVITE_ID, inviteId);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2011 Alfresco Software Limited.
|
||||
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
@@ -27,6 +27,7 @@ import org.alfresco.repo.invitation.InvitationSearchCriteriaImpl;
|
||||
import org.alfresco.repo.invitation.site.InviteInfo;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||
import org.alfresco.repo.site.SiteModel;
|
||||
import org.alfresco.repo.template.TemplateNode;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.invitation.Invitation;
|
||||
@@ -214,7 +215,29 @@ public class Invites extends DeclarativeWebScript
|
||||
criteria.setResourceName(siteShortName);
|
||||
}
|
||||
|
||||
List<Invitation> invitations = invitationService.searchInvitation(criteria);
|
||||
//MNT-9905 Pending Invites created by one site manager aren't visible to other site managers
|
||||
String currentUser = AuthenticationUtil.getRunAsUser();
|
||||
List<Invitation> invitations;
|
||||
|
||||
if (siteShortNameProvided == true && (SiteModel.SITE_MANAGER).equals(siteService.getMembersRole(siteShortName, currentUser)) && inviterUserNameProvided == false && inviteeUserNameProvided == false)
|
||||
{
|
||||
final InvitationSearchCriteriaImpl crit = criteria;
|
||||
|
||||
RunAsWork<List<Invitation>> runAsSystem = new RunAsWork<List<Invitation>>()
|
||||
{
|
||||
@Override
|
||||
public List<Invitation> doWork() throws Exception
|
||||
{
|
||||
return invitationService.searchInvitation(crit);
|
||||
}
|
||||
};
|
||||
|
||||
invitations = AuthenticationUtil.runAs(runAsSystem, AuthenticationUtil.getSystemUserName());
|
||||
}
|
||||
else
|
||||
{
|
||||
invitations = invitationService.searchInvitation(criteria);
|
||||
}
|
||||
|
||||
// Put InviteInfo objects (containing workflow path properties
|
||||
// wf:inviterUserName, wf:inviteeUserName, wf:siteShortName,
|
||||
|
Reference in New Issue
Block a user