summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
diff options
context:
space:
mode:
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) {