From 3136822877f688bb2c769dbd1bb16facecb3067d Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 15 Jan 2013 06:51:31 +0000 Subject: [PATCH] SP-439 BIS-255: clone content provider for specified user in data set processing context SVN: 28093 --- .../shared/DataSetProcessingContext.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSetProcessingContext.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSetProcessingContext.java index 07a8c834ecd..d2a8624a4d0 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSetProcessingContext.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/DataSetProcessingContext.java @@ -30,6 +30,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IProcessingPlug import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.ISessionWorkspaceProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; +import ch.systemsx.cisd.openbis.generic.shared.dto.OpenBISSessionHolder; /** * Context for processing data sets by a {@link IProcessingPluginTask}. @@ -165,6 +166,7 @@ public class DataSetProcessingContext public IHierarchicalContentProvider getHierarchicalContentProvider() { + final IHierarchicalContentProvider contentProvider = getContentProvider(); return new IHierarchicalContentProvider() { @@ -172,7 +174,7 @@ public class DataSetProcessingContext public IHierarchicalContent asContent(ExternalData dataSet) { assertAuthorization(dataSet.getCode()); - return hierarchicalContentProvider.asContent(dataSet); + return contentProvider.asContent(dataSet); } @Override @@ -180,33 +182,46 @@ public class DataSetProcessingContext throws IllegalArgumentException { assertAuthorization(dataSetCode); - return hierarchicalContentProvider.asContent(dataSetCode); + return contentProvider.asContent(dataSetCode); } @SuppressWarnings("deprecation") @Override public IHierarchicalContent asContent(File datasetDirectory) { - return hierarchicalContentProvider.asContent(datasetDirectory); + return contentProvider.asContent(datasetDirectory); } @SuppressWarnings("deprecation") @Override public IHierarchicalContent asContent(IDatasetLocation datasetLocation) { - return hierarchicalContentProvider.asContent(datasetLocation); + return contentProvider.asContent(datasetLocation); } @Override public IHierarchicalContentProvider cloneFor( ISessionTokenProvider sessionTokenProvider) { - return hierarchicalContentProvider.cloneFor(sessionTokenProvider); + return contentProvider.cloneFor(sessionTokenProvider); } }; } - + + private IHierarchicalContentProvider getContentProvider() + { + if (sessionTokenOrNull == null) + { + return hierarchicalContentProvider; + } + OpenBISSessionHolder sessionHolder = new OpenBISSessionHolder(); + sessionHolder.setSessionToken(sessionTokenOrNull); + final IHierarchicalContentProvider contentProvider = + hierarchicalContentProvider.cloneFor(sessionHolder); + return contentProvider; + } + public IHierarchicalContentProvider getHierarchicalContentProviderUnfiltered() { return hierarchicalContentProvider; -- GitLab