From dac019ab858249c10f9df8f5e5e06d2d0375cedd Mon Sep 17 00:00:00 2001 From: Marvin Lindner Date: Mon, 30 Mar 2026 09:06:22 +0200 Subject: [PATCH 1/2] add system user info --- .../feature/attachments/service/AttachmentsServiceImpl.java | 1 + .../service/model/servicehandler/DeletionUserInfo.java | 5 +++++ .../attachments/service/AttachmentsServiceImplTest.java | 2 ++ .../service/model/servicehandler/DeletionUserInfoTest.java | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImpl.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImpl.java index 37bf8469b..a33660351 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImpl.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImpl.java @@ -81,6 +81,7 @@ public void restoreAttachment(Instant restoreTimestamp) { private DeletionUserInfo fillDeletionUserInfo(UserInfo userInfo) { var deletionUserInfo = DeletionUserInfo.create(); deletionUserInfo.setName(userInfo.getName()); + deletionUserInfo.setIsSystemUser(userInfo.isSystemUser()); return deletionUserInfo; } } diff --git a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfo.java b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfo.java index 34f4dee67..231dbdd53 100644 --- a/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfo.java +++ b/cds-feature-attachments/src/main/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfo.java @@ -13,6 +13,7 @@ public interface DeletionUserInfo extends CdsData { String NAME = "name"; + String IS_SYSTEM_USER = "isSystemUser"; static DeletionUserInfo create() { return Struct.create(DeletionUserInfo.class); @@ -21,4 +22,8 @@ static DeletionUserInfo create() { String getName(); void setName(String id); + + Boolean getIsSystemUser(); + + void setIsSystemUser(Boolean isSystemUser); } diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImplTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImplTest.java index dff314a63..c1f569f35 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImplTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/AttachmentsServiceImplTest.java @@ -180,6 +180,7 @@ void restoreAttachmentAttachmentInsertsData() { private ModifiableUserInfo mockUserInfo() { var userInfo = UserInfo.create(); userInfo.setName("some name"); + userInfo.setIsSystemUser(true); return userInfo; } @@ -187,5 +188,6 @@ private void validateUerInfo( AttachmentMarkAsDeletedEventContext deleteEventContext, ModifiableUserInfo userInfo) { var deletionUserInfo = deleteEventContext.getDeletionUserInfo(); assertThat(deletionUserInfo.getName()).isEqualTo(userInfo.getName()); + assertThat(deletionUserInfo.getIsSystemUser()).isEqualTo(userInfo.isSystemUser()); } } diff --git a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfoTest.java b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfoTest.java index 57d3f5917..8e7824ddd 100644 --- a/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfoTest.java +++ b/cds-feature-attachments/src/test/java/com/sap/cds/feature/attachments/service/model/servicehandler/DeletionUserInfoTest.java @@ -22,8 +22,10 @@ void dataCanBeRead() { var name = "some name"; cut.setName(name); + cut.setIsSystemUser(true); assertThat(cut.getName()).isEqualTo(name); + assertThat(cut.getIsSystemUser()).isTrue(); } @Test @@ -31,7 +33,9 @@ void dataCanBeReadWithConstant() { var name = "some_name"; cut.setName(name); + cut.setIsSystemUser(false); assertThat(cut).containsEntry(DeletionUserInfo.NAME, name); + assertThat(cut).containsEntry(DeletionUserInfo.IS_SYSTEM_USER, false); } } From dd33fb5ea0524a8fd2d4748c6d3b228e9cc328b9 Mon Sep 17 00:00:00 2001 From: Marvin Lindner Date: Mon, 30 Mar 2026 09:06:27 +0200 Subject: [PATCH 2/2] itest --- .../OdataRequestValidationWithTestHandlerTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithTestHandlerTest.java b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithTestHandlerTest.java index 1853ec28c..94fca3378 100644 --- a/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithTestHandlerTest.java +++ b/integration-tests/srv/src/test/java/com/sap/cds/feature/attachments/integrationtests/nondraftservice/OdataRequestValidationWithTestHandlerTest.java @@ -163,6 +163,8 @@ protected void verifySingleDeletionEvent(String contentId) { assertThat(event.context()).isInstanceOf(AttachmentMarkAsDeletedEventContext.class); var deleteContext = (AttachmentMarkAsDeletedEventContext) event.context(); assertThat(deleteContext.getContentId()).isEqualTo(contentId); + assertThat(deleteContext.getDeletionUserInfo().getName()).isEqualTo("anonymous"); + assertThat(deleteContext.getDeletionUserInfo().getIsSystemUser()).isFalse(); }); } @@ -203,7 +205,11 @@ private Predicate verifyContentIdAndUserInfo( && ((AttachmentMarkAsDeletedEventContext) event.context()) .getDeletionUserInfo() .getName() - .equals("anonymous"); + .equals("anonymous") + && Boolean.FALSE.equals( + ((AttachmentMarkAsDeletedEventContext) event.context()) + .getDeletionUserInfo() + .getIsSystemUser()); } private void verifyCreateEventsContainsContentId(