From 66734ff9302a8431fff6f107a3981f229d19c5a9 Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Mon, 31 Mar 2014 14:34:16 +0000
Subject: [PATCH] SSDM-50 detect access to data set file

SVN: 31249
---
 .../dss/generic/server/AbstractDatasetDownloadServlet.java  | 2 ++
 .../dss/generic/server/EncapsulatedOpenBISService.java      | 6 ++++++
 .../dss/generic/shared/IEncapsulatedOpenBISService.java     | 6 ++++++
 3 files changed, 14 insertions(+)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/AbstractDatasetDownloadServlet.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/AbstractDatasetDownloadServlet.java
index ea06230a93d..8ffed08ab34 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/AbstractDatasetDownloadServlet.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/AbstractDatasetDownloadServlet.java
@@ -324,6 +324,8 @@ abstract public class AbstractDatasetDownloadServlet extends HttpServlet
     protected final void ensureDatasetAccessible(String dataSetCode, HttpSession session,
             String sessionIdOrNull)
     {
+        applicationContext.getDataSetService().notifyDatasetAccess(dataSetCode);
+
         if (isDatasetAccessible(dataSetCode, sessionIdOrNull, session) == false)
         {
             throw new UserFailureException("Data set '" + dataSetCode + "' is not accessible.");
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
index 31135e8860c..edba8c221b9 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
@@ -878,6 +878,12 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         service.markSuccessfulPostRegistration(session.getSessionToken(), dataSetCode);
     }
 
+    @Override
+    public void notifyDatasetAccess(String dataSetCode)
+    {
+        service.notifyDatasetAccess(session.getSessionToken(), dataSetCode);
+    }
+
     @Override
     public List<AbstractExternalData> listDataSetsForPostRegistration()
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
index 6927cbbfbb7..ec7e6560446 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java
@@ -479,6 +479,12 @@ public interface IEncapsulatedOpenBISService extends IEncapsulatedBasicOpenBISSe
     @ManagedAuthentication
     public void markSuccessfulPostRegistration(String dataSetCode);
 
+    /**
+     * {@link IServiceForDataStoreServer#notifyDatasetAccess(String, String)}
+     */
+    @ManagedAuthentication
+    public void notifyDatasetAccess(String dataSetCode);
+
     /**
      * {@link IServiceForDataStoreServer#listDataSetsForPostRegistration(String, String)}
      */
-- 
GitLab