From 454adacee20adb33ba6b7790110127449083ab73 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Mon, 28 Oct 2013 14:47:21 +0000 Subject: [PATCH] Fix for CLOUD-2151 - Changing the theme for the alfresco.com network on production does not take effect for all users git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@57263 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/web/scripts/bean/ADMRemoteStore.java | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 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 78598ad581..f94a3505a4 100644 --- a/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java +++ b/source/java/org/alfresco/repo/web/scripts/bean/ADMRemoteStore.java @@ -546,26 +546,35 @@ public class ADMRemoteStore extends BaseRemoteStore @Override protected void updateDocument(final WebScriptResponse res, String store, final String path, final InputStream content) { - final String encpath = encodePath(path); - final FileInfo fileInfo = resolveFilePath(encpath); - if (fileInfo == null || fileInfo.isFolder()) + final String runAsUser = getPathRunAsUser(path); + AuthenticationUtil.runAs(new RunAsWork() { - res.setStatus(Status.STATUS_NOT_FOUND); - return; - } - - try - { - ContentWriter writer = contentService.getWriter(fileInfo.getNodeRef(), ContentModel.PROP_CONTENT, true); - writer.putContent(content); - if (logger.isDebugEnabled()) - logger.debug("updateDocument: " + fileInfo.toString()); - } - catch (AccessDeniedException ae) - { - res.setStatus(Status.STATUS_UNAUTHORIZED); - throw ae; - } + @SuppressWarnings("synthetic-access") + public Void doWork() throws Exception + { + final String encpath = encodePath(path); + final FileInfo fileInfo = resolveFilePath(encpath); + if (fileInfo == null || fileInfo.isFolder()) + { + res.setStatus(Status.STATUS_NOT_FOUND); + return null; + } + + try + { + ContentWriter writer = contentService.getWriter(fileInfo.getNodeRef(), ContentModel.PROP_CONTENT, true); + writer.putContent(content); + if (logger.isDebugEnabled()) + logger.debug("updateDocument: " + fileInfo.toString()); + } + catch (AccessDeniedException ae) + { + res.setStatus(Status.STATUS_UNAUTHORIZED); + throw ae; + } + return null; + } + }, runAsUser); } /**