mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD (5.2) to 5.2.N (5.2.1)
127561 jkaabimofrad: Merged API-STRIKES-BACK (5.2.0) to HEAD (5.2) 125708 jvonka: RA-779 / RA-780: Sites API - fix (create site + permanent delete + create site with same site id) - RA-967 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@127655 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -47,10 +47,12 @@ import org.alfresco.query.PagingRequest;
|
||||
import org.alfresco.query.PagingResults;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.authority.UnknownAuthorityException;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.repo.site.SiteMembership;
|
||||
import org.alfresco.repo.site.SiteMembershipComparator;
|
||||
import org.alfresco.repo.site.SiteModel;
|
||||
import org.alfresco.repo.site.SiteServiceException;
|
||||
import org.alfresco.repo.site.SiteServiceImpl;
|
||||
import org.alfresco.rest.api.Nodes;
|
||||
import org.alfresco.rest.api.People;
|
||||
import org.alfresco.rest.api.Sites;
|
||||
@@ -77,6 +79,8 @@ import org.alfresco.service.cmr.preference.PreferenceService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.cmr.security.AccessStatus;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.site.SiteInfo;
|
||||
import org.alfresco.service.cmr.site.SiteService;
|
||||
import org.alfresco.service.cmr.site.SiteVisibility;
|
||||
@@ -122,6 +126,8 @@ public class SitesImpl implements Sites
|
||||
protected PreferenceService preferenceService;
|
||||
protected ImporterService importerService;
|
||||
protected SiteSurfConfig siteSurfConfig;
|
||||
protected PermissionService permissionService;
|
||||
protected SiteServiceImpl siteServiceImpl;
|
||||
|
||||
public void setPreferenceService(PreferenceService preferenceService)
|
||||
{
|
||||
@@ -168,6 +174,17 @@ public class SitesImpl implements Sites
|
||||
this.siteSurfConfig = siteSurfConfig;
|
||||
}
|
||||
|
||||
public void setPermissionService(PermissionService permissionService)
|
||||
{
|
||||
this.permissionService = permissionService;
|
||||
}
|
||||
|
||||
public void setSiteServiceImpl(SiteServiceImpl siteServiceImpl)
|
||||
{
|
||||
this.siteServiceImpl = siteServiceImpl;
|
||||
}
|
||||
|
||||
|
||||
public SiteInfo validateSite(NodeRef guid)
|
||||
{
|
||||
SiteInfo siteInfo = null;
|
||||
@@ -857,13 +874,24 @@ public class SitesImpl implements Sites
|
||||
}
|
||||
siteId = siteInfo.getShortName();
|
||||
|
||||
NodeRef siteNodeRef = siteInfo.getNodeRef();
|
||||
|
||||
// belt-and-braces - double-check before purge/delete (rather than rollback)
|
||||
if (permissionService.hasPermission(siteNodeRef, PermissionService.DELETE) != AccessStatus.ALLOWED)
|
||||
{
|
||||
throw new AccessDeniedException("Cannot delete site: "+siteId);
|
||||
}
|
||||
|
||||
// default false (if not provided)
|
||||
boolean permanentDelete = Boolean.valueOf(parameters.getParameter(PARAM_PERMANENT));
|
||||
|
||||
if (permanentDelete == true)
|
||||
{
|
||||
// Set as temporary to delete node instead of archiving.
|
||||
nodeService.addAspect(siteInfo.getNodeRef(), ContentModel.ASPECT_TEMPORARY, null);
|
||||
nodeService.addAspect(siteNodeRef, ContentModel.ASPECT_TEMPORARY, null);
|
||||
|
||||
// bypassing trashcan means that purge behaviour will not fire, so explicitly force cleanup here
|
||||
siteServiceImpl.beforePurgeNode(siteNodeRef);
|
||||
}
|
||||
|
||||
siteService.deleteSite(siteId);
|
||||
|
Reference in New Issue
Block a user