From cc4cd5f2d02dcbf794762a38eed589388957bf19 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 12 Apr 2017 08:24:07 +0000
Subject: [PATCH] SSDM-4874, SSDM-4876: Update modification date and modifier
 when deleting or updating an attachment.

SVN: 38049
---
 .../generic/server/business/bo/AttachmentBO.java  | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
index b945eb5bc08..5fab8f5a0e7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AttachmentBO.java
@@ -25,9 +25,12 @@ import ch.systemsx.cisd.openbis.generic.server.business.IRelationshipService;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.util.DataSetTypeWithoutExperimentChecker;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IAttachmentDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.RelationshipUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentHolderPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.AttachmentPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.IModifierAndModificationDateBean;
+import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
 import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory;
 
@@ -56,6 +59,7 @@ public final class AttachmentBO extends AbstractBusinessObject implements IAttac
     {
         IAttachmentDAO attachmentDAO = getAttachmentDAO();
         attachmentDAO.deleteAttachments(holder, reason, fileNames, session.tryGetPerson());
+        updateModificationDateAndModifier(holder);
     }
 
     @Override
@@ -65,8 +69,19 @@ public final class AttachmentBO extends AbstractBusinessObject implements IAttac
         attachment.setDescription(attachmentDTO.getDescription());
         attachment.setTitle(attachmentDTO.getTitle());
         dataChanged = true;
+        updateModificationDateAndModifier(holder);
     }
 
+    private void updateModificationDateAndModifier(final AttachmentHolderPE holder)
+    {
+        if (holder instanceof IModifierAndModificationDateBean)
+        {
+            IModifierAndModificationDateBean entity = (IModifierAndModificationDateBean) holder;
+            PersonPE user = findPerson();
+            RelationshipUtils.updateModificationDateAndModifier(entity, user, getTransactionTimeStamp());
+        }
+    }
+    
     @Override
     public final void save()
     {
-- 
GitLab