diff --git a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java index 283e64611979..0642d03522bf 100644 --- a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java +++ b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java @@ -286,7 +286,7 @@ public TrackedEntityInstance getTrackedEntityInstance( } Set readableAttributes = - new HashSet<>(daoTrackedEntityInstance.getTrackedEntityType().getTrackedEntityAttributes()); + trackedEntityAttributeService.getAllUserReadableTrackedEntityAttributes(user); return getTei(daoTrackedEntityInstance, readableAttributes, params, user, null); } @@ -305,7 +305,7 @@ public TrackedEntityInstance getTrackedEntityInstanceExcludingACL( User user = currentUserService.getCurrentUser(); Set readableAttributes = - new HashSet<>(daoTrackedEntityInstance.getTrackedEntityType().getTrackedEntityAttributes()); + trackedEntityAttributeService.getAllUserReadableTrackedEntityAttributes(user); readableAttributes.addAll(program.getTrackedEntityAttributes()); return getTei(daoTrackedEntityInstance, readableAttributes, params, user, program); diff --git a/dhis-2/dhis-test-integration/src/test/java/org/hisp/dhis/dxf2/events/TrackedEntityInstanceServiceTest.java b/dhis-2/dhis-test-integration/src/test/java/org/hisp/dhis/dxf2/events/TrackedEntityInstanceServiceTest.java index 4d3418ae0525..8eb91274c8cc 100644 --- a/dhis-2/dhis-test-integration/src/test/java/org/hisp/dhis/dxf2/events/TrackedEntityInstanceServiceTest.java +++ b/dhis-2/dhis-test-integration/src/test/java/org/hisp/dhis/dxf2/events/TrackedEntityInstanceServiceTest.java @@ -837,27 +837,13 @@ void shouldReturnTrackedEntityTypeAndProgramAttributesWhenSingleTERequestedAndPr .collect(Collectors.toList())); } - @Test - void - shouldReturnTrackedEntityTypeAttributesWhenSingleTERequestedAndProgramSpecifiedButItHasNoProgramAttributes() { - TrackedEntityInstance trackedEntityInstance = - trackedEntityInstanceService.getTrackedEntityInstanceExcludingACL( - maleA.getUid(), new Program(), TrackedEntityInstanceParams.TRUE); - - assertContainsOnly( - List.of(uniqueIdAttribute.getUid()), - trackedEntityInstance.getAttributes().stream() - .map(Attribute::getAttribute) - .collect(Collectors.toList())); - } - @Test void shouldReturnTrackedEntityTypeAttributesWhenSingleTERequestedAndNoProgramSpecified() { TrackedEntityInstance trackedEntityInstance = trackedEntityInstanceService.getTrackedEntityInstance(maleA); assertContainsOnly( - List.of(uniqueIdAttribute.getUid()), + List.of(programAttribute.getUid(), uniqueIdAttribute.getUid()), trackedEntityInstance.getAttributes().stream() .map(Attribute::getAttribute) .collect(Collectors.toList()));