From cc24b21c780fb11631c0474f48438d04c9bf0101 Mon Sep 17 00:00:00 2001 From: Ramona Neamtu Date: Tue, 6 Dec 2016 15:07:50 +0000 Subject: [PATCH] ACE-5647: [Win7,chrome] Configure dashboard - Configuration not saved after removing dashlets to trashcan -Run the deleteDocument action as pathRunAsUser (system for non-admin users) same as is done for updateDocument and createDocument. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@133350 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/web/scripts/bean/ADMRemoteStore.java | 64 +++++++++++-------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java b/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java index 45a4b7cbfe..2fd361d67d 100644 --- a/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java +++ b/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java @@ -625,33 +625,43 @@ public class ADMRemoteStore extends BaseRemoteStore res.setStatus(Status.STATUS_NOT_FOUND); return; } - - try - { - final NodeRef fileRef = fileInfo.getNodeRef(); - this.nodeService.addAspect(fileRef, ContentModel.ASPECT_TEMPORARY, null); - - // ALF-17729 - NodeRef parentFolderRef = unprotNodeService.getPrimaryParent(fileRef).getParentRef(); - behaviourFilter.disableBehaviour(parentFolderRef, ContentModel.ASPECT_AUDITABLE); - - try - { - this.nodeService.deleteNode(fileRef); - } - finally - { - behaviourFilter.enableBehaviour(parentFolderRef, ContentModel.ASPECT_AUDITABLE); - } - - if (logger.isDebugEnabled()) - logger.debug("deleteDocument: " + fileInfo.toString()); - } - catch (AccessDeniedException ae) - { - res.setStatus(Status.STATUS_UNAUTHORIZED); - throw ae; - } + + final String runAsUser = getPathRunAsUser(path); + AuthenticationUtil.runAs(new RunAsWork() + { + @SuppressWarnings("synthetic-access") + public Void doWork() throws Exception + { + try + { + final NodeRef fileRef = fileInfo.getNodeRef(); + // MNT-16371: Revoke ownership privileges for surf-config folder contents, to tighten access for former SiteManagers. + nodeService.addAspect(fileRef, ContentModel.ASPECT_TEMPORARY, null); + + // ALF-17729 + NodeRef parentFolderRef = unprotNodeService.getPrimaryParent(fileRef).getParentRef(); + behaviourFilter.disableBehaviour(parentFolderRef, ContentModel.ASPECT_AUDITABLE); + + try + { + nodeService.deleteNode(fileRef); + } + finally + { + behaviourFilter.enableBehaviour(parentFolderRef, ContentModel.ASPECT_AUDITABLE); + } + + if (logger.isDebugEnabled()) + logger.debug("deleteDocument: " + fileInfo.toString()); + } + catch (AccessDeniedException ae) + { + res.setStatus(Status.STATUS_UNAUTHORIZED); + throw ae; + } + return null; + } + }, runAsUser); } /**