diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java index 0c3e86726f8d0075e60d9ea6fd9aa3a4fe870afe..aef5328702350ee0f2ee6c486758bceee89bd084 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java @@ -365,24 +365,24 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic } @Override - public void unarchiveDatasets(String sessionToken, List<DatasetDescription> datasets, + public void unarchiveDatasets(String sessionToken, String userSessionToken, List<DatasetDescription> datasets, String userId, String userEmailOrNull) { String description = "Unarchiving"; IProcessingPluginTask task = new UnarchiveProcessingPluginTask(getArchiverPlugin()); - scheduleTask(sessionToken, description, task, datasets, userId, userEmailOrNull); + scheduleTask(sessionToken, userSessionToken, description, task, datasets, userId, userEmailOrNull); } @Override - public void archiveDatasets(String sessionToken, List<DatasetDescription> datasets, + public void archiveDatasets(String sessionToken, String userSessionToken, List<DatasetDescription> datasets, String userId, String userEmailOrNull, boolean removeFromDataStore) { String description = removeFromDataStore ? "Archiving" : "Copying data sets to archive"; IProcessingPluginTask task = new ArchiveProcessingPluginTask(getArchiverPlugin(), removeFromDataStore); - scheduleTask(sessionToken, description, task, datasets, userId, userEmailOrNull); + scheduleTask(sessionToken, userSessionToken, description, task, datasets, userId, userEmailOrNull); } @Override @@ -431,7 +431,7 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic return new MailClient(mailClientParameters); } - private void scheduleTask(String sessionToken, String description, + private void scheduleTask(String sessionToken, String userSessionToken, String description, IProcessingPluginTask processingTask, List<DatasetDescription> datasets, String userId, String userEmailOrNull) { @@ -440,7 +440,7 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic DatastoreServiceDescription.processing(description, description, null, null); Map<String, String> parameterBindings = Collections.<String, String> emptyMap(); commandExecutor.scheduleProcessDatasets(processingTask, datasets, parameterBindings, - userId, userEmailOrNull, sessionToken, pluginDescription, mailClientParameters); + userId, userEmailOrNull, userSessionToken, pluginDescription, mailClientParameters); } private static class ArchiveProcessingPluginTask implements IProcessingPluginTask diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java index d96e6d5ab36ae40245c3fffae9beb9e4886f98a3..1b6870116c80dea41a65a61937eb5ae09a27ea51 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java @@ -146,7 +146,7 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable } @Override - public void unarchiveDatasets(String sessionToken, List<DatasetDescription> datasets, + public void unarchiveDatasets(String sessionToken, String userSessionToken, List<DatasetDescription> datasets, String userId, String userEmailOrNull) { log("activateDatasets", "NO_OF_DATASETS(%s) USER_ID (%s) USER_EMAIL(%s)", datasets.size(), @@ -154,7 +154,7 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable } @Override - public void archiveDatasets(String sessionToken, List<DatasetDescription> datasets, + public void archiveDatasets(String sessionToken, String userSessionToken, List<DatasetDescription> datasets, String userId, String userEmailOrNull, boolean removeFromDataStore) { log("archiveDatasets", diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java index fa1509aa9892a5045881ef889176eca848b54af3..d66d4ff6e5a12809caee5fcb1f115dfe473f727a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java @@ -757,7 +757,8 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements public void execute(String sessionToken, IDataStoreService service, List<DatasetDescription> descriptions, String userId, String userEmailOrNull) { - service.unarchiveDatasets(sessionToken, descriptions, userId, userEmailOrNull); + service.unarchiveDatasets(sessionToken, session.getSessionToken(), + descriptions, userId, userEmailOrNull); } @Override @@ -779,8 +780,8 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements public void execute(String sessionToken, IDataStoreService service, List<DatasetDescription> descriptions, String userId, String userEmailOrNull) { - service.archiveDatasets(sessionToken, descriptions, userId, userEmailOrNull, - removeFromDataStore); + service.archiveDatasets(sessionToken, session.getSessionToken(), descriptions, + userId, userEmailOrNull, removeFromDataStore); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java index 5ced05af6a32e37361087d2cf0bbb6b719148a36..2bf39a876b6c9e65738fa88de1ccef8c0bfed0a8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java @@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.generic.shared; import java.util.List; import java.util.Map; +import ch.systemsx.cisd.common.exception.InvalidAuthenticationException; import ch.systemsx.cisd.openbis.common.conversation.annotation.Conversational; import ch.systemsx.cisd.openbis.common.conversation.annotation.Progress; -import ch.systemsx.cisd.common.exception.InvalidAuthenticationException; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CustomImportFile; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; @@ -113,8 +113,9 @@ public interface IDataStoreService * @param removeFromDataStore when set to <code>true</code> the data sets will be removed from * the data store after a successful archiving operation. */ - public void archiveDatasets(String sessionToken, List<DatasetDescription> datasets, - String userId, String userEmailOrNull, boolean removeFromDataStore); + public void archiveDatasets(String sessionToken, String userSessionToken, + List<DatasetDescription> datasets, String userId, String userEmailOrNull, + boolean removeFromDataStore); /** * Schedules unarchiving of provided datasets. @@ -124,8 +125,8 @@ public interface IDataStoreService * the task is finished. It may be null if the user doesn't have email and no message * will be send in such case. */ - public void unarchiveDatasets(String sessionToken, List<DatasetDescription> datasets, - String userId, String userEmailOrNull); + public void unarchiveDatasets(String sessionToken, String userSessionToken, + List<DatasetDescription> datasets, String userId, String userEmailOrNull); /** * Gets the link from a service that supports the IReportingPluginTask#createLink method. diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java index 3e48b5f21096eff1d75d895c00c312bd09eb13fb..3f090bb614ab36daf87b58d655ed299a4f39eb05 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTableTest.java @@ -679,8 +679,9 @@ public final class DataSetTableTest extends AbstractBOTest prepareUpdateDatasetStatuses(allDataSets, ARCHIVE_PENDING); + String userSessionToken = ManagerTestTool.EXAMPLE_SESSION.getSessionToken(); allowing(dataStoreService2).archiveDatasets( - with(equal(dss2.getSessionToken())), + with(equal(dss2.getSessionToken())), with(equal(userSessionToken)), with(createDatasetDescriptionsMatcher(d2Array)), with(equal(ManagerTestTool.EXAMPLE_PERSON.getUserId())), with(equal(ManagerTestTool.EXAMPLE_PERSON.getEmail())), @@ -688,7 +689,7 @@ public final class DataSetTableTest extends AbstractBOTest will(throwException(new RuntimeException())); allowing(dataStoreService3).archiveDatasets( - with(equal(dss3.getSessionToken())), + with(equal(dss3.getSessionToken())), with(equal(userSessionToken)), with(createDatasetDescriptionsMatcher(d3Array)), with(equal(ManagerTestTool.EXAMPLE_PERSON.getUserId())), with(equal(ManagerTestTool.EXAMPLE_PERSON.getEmail())), @@ -737,7 +738,9 @@ public final class DataSetTableTest extends AbstractBOTest context.checking(new Expectations() { { + String userSessionToken = ManagerTestTool.EXAMPLE_SESSION.getSessionToken(); one(service).archiveDatasets(with(equal(store.getSessionToken())), + with(equal(userSessionToken)), with(createDatasetDescriptionsMatcher(dataSets)), with(equal(ManagerTestTool.EXAMPLE_PERSON.getUserId())), with(equal(ManagerTestTool.EXAMPLE_PERSON.getEmail())), @@ -752,7 +755,9 @@ public final class DataSetTableTest extends AbstractBOTest context.checking(new Expectations() { { + String userSessionToken = ManagerTestTool.EXAMPLE_SESSION.getSessionToken(); one(service).unarchiveDatasets(with(equal(store.getSessionToken())), + with(equal(userSessionToken)), with(createDatasetDescriptionsMatcher(dataSets)), with(equal(ManagerTestTool.EXAMPLE_PERSON.getUserId())), with(equal(ManagerTestTool.EXAMPLE_PERSON.getEmail())));