From 79b1cbaf8d5dc444415e14b26ff48420ac02ff8b Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 23 Oct 2015 09:39:09 +0200 Subject: [PATCH] OO-1742: limit the upload to zip and pdf and show an error if the upload doesn't succeed --- .../course/certificate/manager/CertificatesManagerImpl.java | 4 ++-- .../course/certificate/ui/CertificateChooserController.java | 5 +++++ .../course/certificate/ui/UploadCertificateController.java | 3 +++ .../course/certificate/ui/_i18n/LocalStrings_de.properties | 1 + .../course/certificate/ui/_i18n/LocalStrings_en.properties | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java index 3d6ee860d40..044c9d67c5e 100644 --- a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java +++ b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java @@ -150,8 +150,6 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList @Autowired private RepositoryManager repositoryManager; @Autowired - private NotificationsManager notificationsManager; - @Autowired private BusinessGroupService businessGroupService; @Autowired private BusinessGroupRelationDAO businessGroupRelationDao; @@ -961,6 +959,8 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList } else { template = null; } + } else { + template = null; } return template; } diff --git a/src/main/java/org/olat/course/certificate/ui/CertificateChooserController.java b/src/main/java/org/olat/course/certificate/ui/CertificateChooserController.java index acf2423c9ce..0bcf5ba72bc 100644 --- a/src/main/java/org/olat/course/certificate/ui/CertificateChooserController.java +++ b/src/main/java/org/olat/course/certificate/ui/CertificateChooserController.java @@ -154,6 +154,8 @@ public class CertificateChooserController extends UploadCertificateController { if(validateTemplate()) { doUpload(ureq); } + } else if(fileEl == source) { + validateTemplate(); } super.formInnerEvent(ureq, source, event); } @@ -163,6 +165,9 @@ public class CertificateChooserController extends UploadCertificateController { if(template != null) { String name = fileEl.getUploadFileName(); selectedTemplate = certificatesManager.addTemplate(name, template, getFormat(), getOrientation(), false); + if(selectedTemplate == null) { + showError("upload.wrong.mimetype"); + } fireEvent(ureq, Event.DONE_EVENT); } } diff --git a/src/main/java/org/olat/course/certificate/ui/UploadCertificateController.java b/src/main/java/org/olat/course/certificate/ui/UploadCertificateController.java index b9965b6c6af..ba933c86351 100644 --- a/src/main/java/org/olat/course/certificate/ui/UploadCertificateController.java +++ b/src/main/java/org/olat/course/certificate/ui/UploadCertificateController.java @@ -171,6 +171,9 @@ public class UploadCertificateController extends FormBasicController { allOk = validatePdf(template); } else if(filename.endsWith(".zip")) { allOk = validateHtml(filename, template); + } else { + fileEl.setErrorKey("upload.wrong.mimetype", null); + allOk &= false; } } diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties index a51dd1efaea..4a09238aab7 100644 --- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties @@ -45,6 +45,7 @@ upload.unkown.error=Die Vorlage kann nicht gelesen werden. upload.error.noindex=Die ZIP-Datei enth\u00E4lt keine "index.html" Datei. upload.error.simplefonts=Der in den Feldern verwendete Font konnte nicht gefunden werden. Bitte benutzen Sie Standardfonts wie z.B. Helvetica, sowie die Acrobat Pro Software, um die Formularfelder zu erstellen. upload.error.no.phantomjs=PhantomJS ist nicht verf\u00FCgbar in PATH. HTML template k\u00F6nnen nicht benutzt werden. +upload.wrong.mimetype=Vorlagen k\u00F6nnen nur als ZIP-Datei oder im PDF-Vorlagenformat hochgeladen werden notifications.title=Neue Zertifikate in Kurs "{0}" notifications.desc={0} hat ein neues Zertifikat erhalten. notifications.header=Neue Zertifikate in Kurs "{0}" diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties index a8f42900937..282378a11d0 100644 --- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties @@ -60,5 +60,6 @@ upload.error.encrypted=The template cannot be encrypted. upload.error.no.phantomjs=PhantomJS is not in PATH. You cannot use HTML templates. upload.error.noindex=The ZIP file doesn't include a "index.html" file. upload.error.simplefonts=The font(s) used in the form fields could not be found. Please use standard fonts such as e.g. Helvetica, as well as the Acrobat Pro Software in order to create the form fields. +upload.wrong.mimetype=Templates may only be uploaded as either .zip file or in the correct PDF template format. upload.title=Upload template upload.unkown.error=The template cannot be opened. -- GitLab