From c13d105ceb44bdd858289d85635db89ab6559fa6 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 25 Aug 2020 14:41:37 +0200 Subject: [PATCH] OO-4869: filter deleted users from QTI 2.1 results export --- src/main/java/org/olat/core/util/StringHelper.java | 2 ++ .../qti21/resultexport/QTI21ResultsExportMediaResource.java | 4 ++++ src/test/java/org/olat/core/util/StringHelperTest.java | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/main/java/org/olat/core/util/StringHelper.java b/src/main/java/org/olat/core/util/StringHelper.java index c738016d339..28a8cd2aea9 100644 --- a/src/main/java/org/olat/core/util/StringHelper.java +++ b/src/main/java/org/olat/core/util/StringHelper.java @@ -475,6 +475,8 @@ public class StringHelper { * @return transformed string */ public static String transformDisplayNameToFileSystemName(String s){ + if(s == null) return ""; + //replace some separator with an underscore s = s.replace('?', '_').replace('\\', '_').replace('/', '_').replace(' ', '_'); //remove all non-ascii characters diff --git a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java index 8f5557cf53e..571098bea1a 100644 --- a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java +++ b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java @@ -279,6 +279,10 @@ public class QTI21ResultsExportMediaResource implements MediaResource { List<AssessedMember> assessedMembers = new ArrayList<>(); for(Identity identity : identities) { + if(identity == null || identity.getStatus() == null || identity.getStatus().equals(Identity.STATUS_DELETED)) { + continue; + } + String lastname = StringHelper.transformDisplayNameToFileSystemName(identity.getUser().getLastName()); String idDir = exportFolderName + "/" + DATA + lastname + "_" + identity.getKey(); idDir = idDir.endsWith(SEP) ? idDir : idDir + SEP; diff --git a/src/test/java/org/olat/core/util/StringHelperTest.java b/src/test/java/org/olat/core/util/StringHelperTest.java index 618d6ec1e21..154c0255ae2 100644 --- a/src/test/java/org/olat/core/util/StringHelperTest.java +++ b/src/test/java/org/olat/core/util/StringHelperTest.java @@ -91,6 +91,11 @@ public class StringHelperTest { Assert.assertEquals("Webclaess", StringHelper.transformDisplayNameToFileSystemName("Webcl\u00E4ss")); } + @Test + public void transformDisplayNameToFileSystemNameNull() { + Assert.assertEquals("", StringHelper.transformDisplayNameToFileSystemName(null)); + } + @Test public void filterPrintControlCharacter() { String value1 = StringHelper.cleanUTF8ForXml("Hello world"); -- GitLab