summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2019-01-31 16:22:50 +0100
committerJonathan Bauer2019-01-31 16:22:50 +0100
commite025340c3e3056ca050b52ad05271a43846a2642 (patch)
tree733ca7ea725a84f5870827f7e89e3f9c08b59680 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
parent[*] Fix accidental use of Boolean.getBoolean. (-> .parseBoolean()) (diff)
downloadtutor-module-e025340c3e3056ca050b52ad05271a43846a2642.tar.gz
tutor-module-e025340c3e3056ca050b52ad05271a43846a2642.tar.xz
tutor-module-e025340c3e3056ca050b52ad05271a43846a2642.zip
[client] introduce branding, --dump and --pack
Application name, service name, master server endpoints, documentation websites needed to be configurable to allow for an easy rebranding of the suite. Two new options allow this: use '--dump <folder>' to dump the jar's configurable files into that folder. Aside from text templates in 'txt', logos and icons in 'img', the 'branding.properties' file contains: * masterserver.address : self-explanatory * application.name : name to be shown on graphical elements like the main window * service.name : name to be used as a prefix for formulation like 'bwLehrpool-Team' or 'bwLehrpool-System' etc * service.faq.website : link to FAQ website * service.email : support contact address Once edited, the whole folder can be integrated into the Suite with '--pack <folder> <new_jar>'. The path to the new jar is then the rebranded version of the suite.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java')
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java46
1 files changed, 31 insertions, 15 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
index cc763152..5289841e 100755
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
@@ -3,9 +3,19 @@ package org.openslx.dozmod.gui.window;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import javax.xml.bind.DatatypeConverter;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.helper.UiFeedback;
+import org.openslx.dozmod.util.ResourceLoader;
/**
* Window for showing the disclaimer.
@@ -13,40 +23,46 @@ import org.openslx.dozmod.gui.helper.UiFeedback;
@SuppressWarnings("serial")
public class DisclaimerWindow extends GenericNoticeWindow implements UiFeedback {
- /**
- * Use a version number for the disclaimer. Whenever we add/change
- * something, this will be increased
- */
- public static final int DISCLAIMER_VERSION = 1;
- protected String notice = "bwLehrpool-Suite (Dozentenmodul)\nCopyright © 2016 Universität Freiburg\n\n"
- + "Die Verwendung dieses Programms ist nur in Abstimmung mit der jeweils beteiligten Hochschulinstitution zulässig und unterliegt deren Bestimmungen und Einschränkungen. Im Rahmen des bwLehrpool-Systems erstellte und bereitgestellte Virtuelle Maschinen, die unfrei lizensierte Software enthalten, dürfen nur mit Erlaubnis bzw. Lizenzierung der betreffenden Rechteinhaber eingesetzt und weitergegeben werden.\n\n"
- + "Insbesondere wird ausdrücklich darauf hingewiesen, dass die Verantwortung in Bezug auf eventuell notwendige Lizenzierung sämtlicher Software innerhalb einer Virtuellen Maschine, regelmäßiger Aktualisierung und rechtzeitigen Einspielens von Sicherheitsupdates ausschließlich beim erstellenden Personal liegt.\n\n\n"
- + "Lizenzierung des Programms\n\n"
- + "Dieses Programm ist freie Software. Es kann unter den Bedingungen der GNU General Public License (GPL) Version 2 verändert und weitergegeben werden. Der vollständige Text der GNU General Public Licence der Version 2 (GPL2) kann hier http://www.gnu.org/licenses/old-licenses/gpl-2.0.html eingesehen werden.\n\n"
- + "Es wird, soweit gesetzlich zulässig, keinerlei Gewährleistung für dieses Programm, weder ausdrücklich noch implizit, geleistet. Der Urheberrechtsinhaber stellt das Programm „wie es ist“ zur Verfügung. Es werden einschließlich Marktreife oder Verwendbarkeit für einen bestimmten Zweck keinerlei Eigenschaften zugesichert."
- + "Das volle Risiko bezüglich Qualität, Leistungsfähigkeit oder jeglicher allgemeiner oder spezieller Schäden, Schäden durch Nebenwirkungen oder Folgeschäden, die aus Benutzung oder Unbenutzbarkeit des Programms folgen (einschließlich Datenverlusten oder fehlerhafter Verarbeitung von Daten)liegt auf Seiten des Anwenders / der Anwenderin.\n\n";
+ private final static Logger LOGGER = Logger.getLogger(PrivacyNoticeWindow.class);
final DisclaimerWindow me = this;
+ protected String DISCLAIMER_NOTICE;
+ private static String DISCLAIMER_NOTICE_MD5 = null;
+ private static String DISCLAIMER_NOTICE_CONTENT = null;
+
+ static {
+ try (InputStream noticeStream = ResourceLoader.getStream("/txt/disclaimer_notice")) {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ byte[] content = IOUtils.toByteArray(noticeStream);
+ md.update(content);
+ byte[] md5 = md.digest();
+ DISCLAIMER_NOTICE_CONTENT = new String(content, StandardCharsets.UTF_8);
+ DISCLAIMER_NOTICE_MD5 = DatatypeConverter.printHexBinary(md5);
+ } catch (IOException | NoSuchAlgorithmException e) {
+ LOGGER.error("Failed to get hash of disclaimer notice: ", e);
+ }
+ }
+
public DisclaimerWindow(Frame modalParent) {
super(modalParent, shouldBeShown());
// Set the actual text
- setNoticeText(notice);
+ setNoticeText(DISCLAIMER_NOTICE_CONTENT);
// function for continue button
btnContinue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// save the agreement to config
- Config.setDisclaimerAgreement(DISCLAIMER_VERSION);
+ Config.setDisclaimerAgreement(DISCLAIMER_NOTICE_MD5);
me.dispose();
}
});
}
public static boolean shouldBeShown() {
- return Config.getDisclaimerAgreement() < DISCLAIMER_VERSION;
+ return !Config.getDisclaimerAgreement().equals(DISCLAIMER_NOTICE_MD5);
}
public static void open(Frame modalParent) {