summaryrefslogtreecommitdiff
path: root/src/test/java/DNPM
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-04-13 21:18:42 +0200
committerPaul-Christian Volkmer2023-04-13 21:19:36 +0200
commitc4c03bfc66d0773544722060d02dc587da93bfbc (patch)
treea47a59e14a8824c655fe7eb5026062a63e8dfa17 /src/test/java/DNPM
parent612da8e5b8a8539cd896596726fadd3eb68b63e9 (diff)
Erlaube keinen Protokollauszug, wenn keine Berechtigung auf Zielformular
Dies verhindert Zugriff auf den Protokollauszug beliebiger MTB-Formulare durch "Erraten" von IDs. Liegt keine Berechtigung für das Therapieplan-Formular (mit gegebener ID) vor, können auch keine referenzierten MTB-Formulare abgerufen und deren Inhalt für den Protokollauszug verwendet werden.
Diffstat (limited to 'src/test/java/DNPM')
-rw-r--r--src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java b/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
index 2b10c5a..c2c17f1 100644
--- a/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
+++ b/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
@@ -1,5 +1,7 @@
package DNPM.analyzer;
+import DNPM.security.DelegatingDataBasedPermissionEvaluator;
+import DNPM.security.PermissionType;
import DNPM.services.*;
import DNPM.services.mtb.MtbService;
import de.itc.onkostar.api.IOnkostarApi;
@@ -40,11 +42,14 @@ class TherapieplanAnalyzerTest {
@Mock
private MtbService mtbService;
+ @Mock
+ private DelegatingDataBasedPermissionEvaluator permissionEvaluator;
+
private TherapieplanAnalyzer therapieplanAnalyzer;
@BeforeEach
void setUp() {
- this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanServiceFactory, mtbService);
+ this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanServiceFactory, mtbService, permissionEvaluator);
}
@Test
@@ -94,6 +99,8 @@ class TherapieplanAnalyzerTest {
when(this.therapieplanServiceFactory.currentUsableInstance())
.thenReturn(therapieplanService);
+ when(this.permissionEvaluator.hasPermission(any(), anyInt(), anyString(), any(PermissionType.class))).thenReturn(true);
+
var input = Map.of("id", (Object) 1234);
this.therapieplanAnalyzer.getProtokollauszug(input);
@@ -102,4 +109,15 @@ class TherapieplanAnalyzerTest {
assertThat(captor.getValue()).hasSize(1);
}
+ @Test
+ void shouldNotRequestProtokollauszugDueToNoPermission() {
+ when(this.permissionEvaluator.hasPermission(any(), anyInt(), anyString(), any(PermissionType.class)))
+ .thenReturn(false);
+
+ var input = Map.of("id", (Object) 1234);
+ this.therapieplanAnalyzer.getProtokollauszug(input);
+
+ verify(mtbService, times(0)).getProtocol(anyList());
+ }
+
}