@ -0,0 +1,692 @@ |
|||||||
|
[ |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H1", |
||||||
|
"value":"Datenschutzerklärung" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Name und Anschrift des Verantwortlichen" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Name und Anschrift des Datenschutzbeauftragten" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Allgemeines zur Datenverarbeitung" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Bereitstellung der Website und Erstellung von Logfiles" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Kontaktformular und E-Mail-Kontakt" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Newsletter-Abonnement" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Formulareingaben in Internetauftritten der Leibniz Universität Hannover" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Cookies" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Webstatistik" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Einbindung von YouTube-Videos" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Teilen bei Sozialen Medien wie Facebook und Twitter" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Externe Werbung" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Widerruf der Datenerfassung durch die ADITION AG" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Rechte der betroffenen Person" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Auskunftsrecht gemäß Art. 15 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Recht auf Berichtigung gemäß Art. 16 DSGVO " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Recht auf Einschränkung der Verarbeitung gemäß Art. 18 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Recht auf Löschung gemäß Art. 17 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Recht auf Unterrichtung gemäß Art. 19 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Recht auf Datenübertragbarkeit gemäß Art. 20 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Widerspruchsrecht gemäß Art. 21 DSGVO" |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"NAME UND ANSCHRIFT DES VERANTWORTLICHEN" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Der Verantwortliche im Sinne der Datenschutz-Grundverordnung und anderer nationaler Datenschutzgesetze der Mitgliedsstaaten sowie sonstiger datenschutzrechtlicher Bestimmungen ist die:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Gottfried Wilhelm Leibniz Universität Hannover Welfengarten 1 30167 Hannover" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Tel. +49 511 762 - 0 Fax +49 511 762 - 3456 www.uni-hannover.de " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Leibniz Universität Hannover ist eine Körperschaft des öffentlichen Rechts und wird durch den Präsidenten , Herrn Prof. Dr. iur. Volker Epping gesetzlich vertreten." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"NAME UND ANSCHRIFT DES DATENSCHUTZBEAUFTRAGTEN" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Behördlicher Datenschutzbeauftragter der Leibniz Universität Hannover:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Gottfried Wilhelm Leibniz Universität Hannover - Datenschutzbeauftragter - Königsworther Platz 1 30167 Hannover" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Tel. +49 511 762-8132 Fax +49 511 762-8258 E-Mail: datenschutz@uni-hannover.de " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":" Website " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"ALLGEMEINES ZUR DATENVERARBEITUNG" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Wir verarbeiten personenbezogene Daten unserer Nutzer grundsätzlich nur, soweit dies zur Bereitstellung einer funktionsfähigen Website sowie unserer Inhalte und Leistungen erforderlich ist." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Soweit einzelne Webauftritte, Webseiten oder Funktionen abweichend von dieser Datenschutzerklärung Verarbeitungen vornehmen, werden die entsprechenden Informationen in einer gesonderten Datenschutzerklärung bereitgestellt." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"BEREITSTELLUNG DER WEBSITE UND ERSTELLUNG VON LOGFILES" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Bei jedem Aufruf unserer Internetseite erfasst unser System automatisiert Daten und Informationen vom Computersystem des aufrufenden Rechners." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Folgende Daten werden hierbei erhoben:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Informationen über den Browsertyp und die verwendete Version" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Das Betriebssystem des Nutzers" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Den Internet-Service-Provider des Nutzers" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Die IP-Adresse des Nutzers" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Datum und Uhrzeit des Zugriffs" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Websites, von denen das System des Nutzers auf unsere Internetseite gelangt" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"LI", |
||||||
|
"value":"Websites, die vom System des Nutzers über unsere Website aufgerufen werden" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Daten werden ebenfalls in den Logfiles unseres Systems gespeichert. Eine Speicherung dieser Daten zusammen mit anderen personenbezogenen Daten des Nutzers findet nicht statt." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Rechtsgrundlage für die vorübergehende Speicherung der Daten und der Logfiles ist Art. 6 Abs. 1 lit. e, Abs. 3 DSGVO i.V.m. §3 NDSG und §3 NHG." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die vorübergehende Speicherung der IP-Adresse durch das System ist notwendig, um eine Auslieferung der Website an den Rechner des Nutzers zu ermöglichen. Hierfür muss die IP-Adresse des Nutzers für die Dauer der Sitzung gespeichert bleiben. Die Speicherung in Logfiles erfolgt, um die Funktionsfähigkeit der Website sicherzustellen. Zudem dienen uns die Daten zur Optimierung der Website und zur Sicherstellung der Sicherheit unserer informationstechnischen Systeme. Eine Auswertung der Daten zu Marketingzwecken findet in diesem Zusammenhang nicht statt." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Im Falle der Erfassung der Daten zur Bereitstellung der Website ist dies der Fall, wenn die jeweilige Sitzung beendet ist." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Im Falle der Speicherung der Daten in Logfiles ist dies nach spätestens sieben Tagen der Fall. Eine darüberhinausgehende Speicherung ist möglich. In diesem Fall werden die IP-Adressen der Nutzer gelöscht oder verfremdet, sodass eine Zuordnung des aufrufenden Clients nicht mehr möglich ist." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Erfassung der Daten zur Bereitstellung der Website und die Speicherung der Daten in Logfiles ist technisch bedingt für den Betrieb der Internetseite zwingend erforderlich." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"KONTAKTFORMULAR UND E-MAIL-KONTAKT" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Auf unserer Internetseite ist ein Kontaktformular vorhanden, welches für die elektronische Kontaktaufnahme genutzt werden kann. Nimmt ein Nutzer diese Möglichkeit wahr, so werden die in der Eingabemaske eingegeben Daten an uns übermittelt und gespeichert. Für die Verarbeitung der Daten wird im Rahmen des Absendevorgangs Ihre Einwilligung eingeholt und auf diese Datenschutzerklärung verwiesen. Alternativ ist eine Kontaktaufnahme über die bereitgestellte E-Mail-Adresse möglich. In diesem Fall werden die mit der E-Mail übermittelten personenbezogenen Daten des Nutzers gespeichert. Es erfolgt in diesem Zusammenhang keine Weitergabe der Daten an Dritte. Die Daten werden ausschließlich für die Verarbeitung der Konversation verwendet. Rechtsgrundlage für die Verarbeitung der Daten ist bei Vorliegen einer Einwilligung des Nutzers Art. 6 Abs. 1 lit. a DSGVO. Rechtsgrundlage für die Verarbeitung der Daten, die im Zuge einer Übersendung einer E-Mail übermittelt werden, ist Art. 6 Abs. 1 lit. e, Abs. 3 DSGVO i.V.m. §3 NSDG und §3 NHG. Zielt der E-Mail-Kontakt auf den Abschluss eines Vertrages ab, so ist zusätzliche Rechtsgrundlage für die Verarbeitung Art. 6 Abs. 1 lit. b DSGVO." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Verarbeitung der personenbezogenen Daten aus der Eingabemaske dient uns allein zur Bearbeitung der Kontaktaufnahme." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die sonstigen während des Absendevorgangs verarbeiteten personenbezogenen Daten dienen dazu, einen Missbrauch des Kontaktformulars zu verhindern und die Sicherheit unserer informationstechnischen Systeme sicherzustellen." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Für die personenbezogenen Daten aus der Eingabemaske des Kontaktformulars und diejenigen, die per E-Mail übersandt wurden, ist dies dann der Fall, wenn die jeweilige Konversation mit dem Nutzer beendet ist. Beendet ist die Konversation dann, wenn sich aus den Umständen entnehmen lässt, dass der betroffene Sachverhalt abschließend geklärt ist." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die während des Absendevorgangs zusätzlich erhobenen personenbezogenen Daten werden spätestens nach einer Frist von sieben Tagen gelöscht." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Der Nutzer hat jederzeit die Möglichkeit, seine Einwilligung zur Verarbeitung der personenbezogenen Daten zu widerrufen. Nimmt der Nutzer per E-Mail Kontakt mit uns auf, so kann er der Speicherung seiner personenbezogenen Daten jederzeit widersprechen. In einem solchen Fall kann die Konversation nicht fortgeführt werden. Alle personenbezogenen Daten, die im Zuge der Kontaktaufnahme gespeichert wurden, werden in diesem Fall gelöscht." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"NEWSLETTER-ABONNEMENT" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Auf einigen Webseiten der Leibniz Universität besteht die Möglichkeit, mittels eines Onlineformulars einen kostenfreien Newsletter zu abonnieren. Dabei werden bei der Anmeldung zum Newsletter die Daten aus der Eingabemaske an uns übermittelt. Darüber hinaus werden noch die IP-Adresse des aufrufenden Rechners, sowie Datum und Uhrzeit der Anmeldung erhoben und verarbeitet. Für die Verarbeitung der Daten wird im Rahmen des Anmeldevorgangs Ihre Einwilligung eingeholt und auf diese Datenschutzerklärung verwiesen." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Es erfolgt im Zusammenhang mit der Datenverarbeitung für den Versand von Newslettern keine Weitergabe der Daten an Dritte. Die Daten werden ausschließlich für den Versand des Newsletters verwendet." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Rechtsgrundlage für die Verarbeitung der Daten nach Anmeldung zum Newsletters durch den Nutzer ist bei Vorliegen einer Einwilligung des Nutzers Art. 6 Abs. 1 lit. a DSGVO." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Erhebung der E-Mail-Adresse des Nutzers dient dazu, den Newsletter zuzustellen. Die Erhebung sonstiger personenbezogener Daten im Rahmen des Anmeldevorgangs dient dazu, die Anmeldung zum Newsletter nachweisen zu können und ggf. einen Missbrauch der Dienste oder der verwendeten E-Mail-Adresse zu verhindern. Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Die E-Mail-Adresse des Nutzers wird demnach solange gespeichert, wie das Abonnement des Newsletters aktiv ist." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Einwilligung in die Übersendung des Newsletters kann durch den betroffenen Nutzer jederzeit widerrufen und der Newsletter abbestellt werden. Zu diesem Zweck findet sich in jedem Newsletter ein entsprechender Link." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"FORMULAREINGABEN IN INTERNETAUFTRITTEN DER LEIBNIZ UNIVERSITÄT HANNOVER" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sofern darüber hinaus innerhalb des Internetangebotes die Möglichkeit zur Eingabe persönlicher oder geschäftlicher Daten (beispielsweise von E-Mail-Adressen, Namen, Anschriften) besteht, so erfolgt die Preisgabe dieser Daten seitens des Nutzers auf ausdrücklich freiwilliger Basis. Rechtsgrundlage für diese Verarbeitungen ist - soweit nicht anders angegeben - Art. 6 Abs. 1 lit. a) DSGVO. Die Erhebung und Verarbeitung der Daten dient nur dem in jeweiligen Onlineformular genannten Zweck. Eine Preis- oder Weitergabe an Dritte findet nicht statt. Die Inanspruchnahme und Bezahlung aller angebotenen Dienste ist - soweit technisch möglich und zumutbar - auch ohne Angabe solcher Daten bzw. unter Angabe anonymisierter Daten oder eines Pseudonyms gestattet. Die Nutzung der im Rahmen des Impressums oder vergleichbarer Angaben veröffentlichten Kontaktdaten wie Postanschriften, Telefon- und Faxnummern sowie E-Mailadressen durch Dritte zur Übersendung von nicht ausdrücklich angeforderten Informationen ist nicht gestattet. Rechtliche Schritte gegen die Versender von sogenannten Spam-Mails bei Verstößen gegen dieses Verbot sind ausdrücklich vorbehalten." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"COOKIES" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Dieser Webauftritt verwendet keine Cookies." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"WEBSTATISTIK" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Wir erstellen eine anonymisierte Statistik und Analyse der Zugriffe auf unsere Webseiten." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Für die Erstellung der Webstatistik setzen wir die Open-Source-Software Matomo (ehemals PIWIK) in anonymisierter Form ein. D.h. es werden keine personenbezogenen Daten verarbeitet. Die Nutzung von Cookies in der Webanalyse-Software Matomo ist deaktiviert." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Bei der Speicherung der Nutzer-IP-Adresse werden die letzten beiden Oktetts nicht verarbeitet. Die Erfassung der Nutzer-ID ist deaktiviert. Für die Analyse werden neben dem Zugriff auf die Seite und der anonymisierten IP-Adresse noch folgende Daten erfasst: Datum und Zeit der Anfrage, Seitentitel der aufgerufenen Seite, URL der vorher aufgerufenen Seite (Referrer-URL), Bildschirmauflösung des Clientensystems, lokaler Zeitzone, URL von angeklickten und heruntergeladenen Dateien, URL von angeklickten externen Domains, Geolocation des Clienten (Land, Region, Stadt), Haupt-Sprache des benutzen Browsers, User Agent des benutzten Browsers." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"EINBINDUNG VON YOUTUBE-VIDEOS" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Wir setzen zum Einbinden von Videos den Anbieter YouTube ein. Die Videos wurden dabei im erweiterten Datenschutzmodus eingebettet. Wie die meisten Websites verwendet aber auch YouTube Cookies, um Informationen über die Besucher ihrer Internetseite zu sammeln. YouTube verwendet diese unter anderem zur Erfassung von Videostatistiken, zur Vermeidung von Betrug und zur Verbesserung der Userfreundlichkeit. Wenn Sie das Video starten, könnte dies weitere Datenverarbeitungsvorgänge auslösen. Darauf haben wir keinen Einfluss. Weitere Informationen über den Datenschutz bei YouTube finden Sie unter: https://www.google.de/intl/de/policies/privacy " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"TEILEN BEI SOZIALEN MEDIEN WIE FACEBOOK UND TWITTER" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"In einigen Webauftritten der Leibniz Universität Hannover ist die Möglichkeit gegeben, einzelne Seiten in sozialen Netzwerken mittels Share-Buttons zu teilen. Über diese Plugins können Daten (auch personenbezogene Daten) an externe Anbieter wie Facebook, Google und Twitter gelangen und von diesen genutzt werden. Rechtsgrundlage für die Nutzung der Plug-ins ist Art. 6 Abs. 1 lit. a) DSGVO." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Leibniz Universität Hannover selbst erfasst weder personenbezogene Daten mittels Social Media Plugins noch Informationen über deren Nutzung. Um zu verhindern, dass Daten ohne das aktive Zutun des Nutzers an die Netzwerkanbieter gelangen, setzt die Leibniz Universität in ihren Webauftritten die datenschutzfreundliche \"Shariff-Lösung\" ein (mehr Informationen: http://m.heise.de/ct/artikel/Shariff-Social-Media-Buttons-mit-Datenschutz-2467514.html )." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Mit dieser Technologie findet eine direkte Verbindung zwischen Nutzer und externem Social-Media-Anbieter erst statt, wenn der Nutzer aktiv auf einen der Buttons klickt. Nur dann können Daten an den externen Anbieter übertragen und dort gespeichert werden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Der externe Anbieter erhält dann die Information, dass die entsprechende Unterseite unseres Online-Angebots aufgerufen wurde. Dazu muss der Nutzer weder ein Konto bei diesem Anbieter besitzen noch dort eingeloggt sein. Ist der Nutzer bei dem externen Anbieter eingeloggt, werden diese Daten direkt dem Nutzerkonto beim externen Anbieter zugeordnet. Wird eine unserer Seiten geteilt, speichert der externe Anbieter i.d.R. auch diese Information in dem Nutzerkonto." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Die Leibniz Universität Hannover hat keinen Einfluss darauf, ob und in welchem Umfang, für welche Dauer und zu welchem Zweck die externen Anbieter personenbezogene Daten erheben. Es ist jedoch davon auszugehen, dass zumindest IP-Adresse und gerätebezogene Informationen erfasst und genutzt werden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Weitere Informationen zur Handhabung des Datenschutzes bei den externen Social-Media-Plattformen können auf deren Webseiten eingesehen werden:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"a) Facebook Inc., 1601 S California Ave, Palo Alto, California 94304, USA http://www.facebook.com/policy.php " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"b) Google Inc., 1600 Amphitheater Parkway, Mountainview, California 94043, USA https://www.google.com/policies/privacy/partners/?hl=de " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"c) Twitter Inc., 1355 Market St, Suite 900, San Francisco, California 94103, USA https://twitter.com/privacy " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"d) Instagram, Facebook Ireland Limited, 4 Grand Canal Square, Dublin 2, Ireland https://www.instagram.com/legal/privacy/ " |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"e) WhatsApp Inc, 650 Castro Street, Suite 120-219, Mountain View, California, 94041, USA http://www.whatsapp.com/legal/?l=de " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"EXTERNE WERBUNG" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Auf einigen Webseiten der Universität sind in Zusammenarbeit mit der Firma VariFast GmbH und unter Verwendung des Adservers der Adition AG Werbebanner geschaltet. Rechtsgrundlage für die Nutzung der Werbebanner ist Art. 6 Abs. 1 lit. f) DSGVO." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Dabei kommen auch so genannte Cookies zum Einsatz. Es handelt sich ausschließlich um Sessioncookies und temporäre Cookies, die dazu dienen, die Zahl der Leser/Visitors statistisch zu messen und die zahlenmäßig festgelegte Auslieferung der Werbemittel zu begrenzen. Technisch bedingt, wird auch die IP-Adresse der Besucher an diese beiden Firmen weitergeleitet. Es werden nur technische, aber keine identifizierenden Daten erfasst. Alle Daten inklusive der IP-Adressen werden nur anonymisiert und rein statistisch ausgewertet. Über den Web-Server der Adition AG werden nur die Verkehrsdaten der Übermittlung temporär gespeichert, deren Erfassung insoweit ohne ausdrückliche Einwilligung des Benutzers erfolgen darf." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Alle einschlägigen datenschutzrechtlichen Bestimmungen, insbesondere die des deutschen Telemediengesetztes, des Bundesdatenschutzgesetzes und des Niedersächsischen Datenschutzgesetzes, werden von Universität, der VariFast GmbH und der Adition AG eingehalten." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Widerruf der Datenerfassung durch die ADITION AG" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Durch Klicken auf den nachfolgenden Link wird die Erfassung von anonymisierten Daten gestoppt. ADITION ersetzt in diesem Fall das jetzige Cookie durch ein neues OptOut-Cookie. Diese OptOut-Cookie löscht die bisher gespeicherten Informationen einschließlich der IP-Adresse und verhindert ein weiteres Erfassen von anonymisierten Informationen. Wird dieses OptOut-Cookie gelöscht, kann ADITION nicht mehr feststellen, dass ein OptOut stattgefunden hat. In diesem Fall ist der OptOut-Vorgang zu wiederholen." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":" https://www.adition.com/kontakt/datenschutz/ " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H2", |
||||||
|
"value":"RECHTE DER BETROFFENEN PERSON" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Werden personenbezogene Daten von Ihnen verarbeitet, sind Sie Betroffener i.S.d. DSGVO und es stehen Ihnen folgende Rechte gegenüber dem Verantwortlichen zu: " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Auskunftsrecht gemäß Art. 15 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie können von dem Verantwortlichen eine Bestätigung darüber verlangen, ob personenbezogene Daten, die Sie betreffen, von uns verarbeitet werden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Liegt eine solche Verarbeitung vor, können Sie von dem Verantwortlichen über folgende Informationen Auskunft verlangen:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) die Zwecke, zu denen die personenbezogenen Daten verarbeitet werden;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) die Kategorien von personenbezogenen Daten, welche verarbeitet werden;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(3) die Empfänger bzw. die Kategorien von Empfängern, gegenüber denen die Sie betreffenden personenbezogenen Daten offengelegt wurden oder noch offengelegt werden;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(4) die geplante Dauer der Speicherung der Sie betreffenden personenbezogenen Daten oder, falls konkrete Angaben hierzu nicht möglich sind, Kriterien für die Festlegung der Speicherdauer;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(5) das Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten, eines Rechts auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(6) das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(7) alle verfügbaren Informationen über die Herkunft der Daten, wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(8) das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Art. 22 Abs. 1 und 4 DSGVO und - zumindest in diesen Fällen - aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für die betroffene Person." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Ihnen steht das Recht zu, Auskunft darüber zu verlangen, ob die Sie betreffenden personenbezogenen Daten in ein Drittland oder an eine internationale Organisation übermittelt werden. In diesem Zusammenhang können Sie verlangen, über die geeigneten Garantien gem. Art. 46 DSGVO im Zusammenhang mit der Übermittlung unterrichtet zu werden." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Recht auf Berichtigung gemäß Art. 16 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben ein Recht auf Berichtigung und/oder Vervollständigung gegenüber dem Verantwortlichen, sofern die verarbeiteten personenbezogenen Daten, die Sie betreffen, unrichtig oder unvollständig sind. Der Verantwortliche hat die Berichtigung unverzüglich vorzunehmen. " |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Recht auf Einschränkung der Verarbeitung gemäß Art. 18 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Unter den folgenden Voraussetzungen können Sie die Einschränkung der Verarbeitung der Sie betreffenden personenbezogenen Daten verlangen:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) wenn Sie die Richtigkeit der Sie betreffenden personenbezogenen für eine Dauer bestreiten, die es dem Verantwortlichen ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) die Verarbeitung unrechtmäßig ist und Sie die Löschung der personenbezogenen Daten ablehnen und stattdessen die Einschränkung der Nutzung der personenbezogenen Daten verlangen;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(3) der Verantwortliche die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger benötigt, Sie diese jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen, oder" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(4) wenn Sie Widerspruch gegen die Verarbeitung gemäß Art. 21 Abs. 1 DSGVO eingelegt haben und noch nicht feststeht, ob die berechtigten Gründe des Verantwortlichen gegenüber Ihren Gründen überwiegen." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Wurde die Verarbeitung der Sie betreffenden personenbezogenen Daten eingeschränkt, dürfen diese Daten - von ihrer Speicherung abgesehen - nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Union oder eines Mitgliedstaats verarbeitet werden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Wurde die Einschränkung der Verarbeitung nach den o.g. Voraussetzungen eingeschränkt, werden Sie von dem Verantwortlichen unterrichtet bevor die Einschränkung aufgehoben wird." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Recht auf Löschung gemäß Art. 17 DSGVO" |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H4", |
||||||
|
"value":"a) Löschungspflicht" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie können von dem Verantwortlichen verlangen, dass die Sie betreffenden personenbezogenen Daten unverzüglich gelöscht werden, und der Verantwortliche ist verpflichtet, diese Daten unverzüglich zu löschen, sofern einer der folgenden Gründe zutrifft:" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) Die Sie betreffenden personenbezogenen Daten sind für die Zwecke, für die sie erhoben oder auf sonstige Weise verarbeitet wurden, nicht mehr notwendig." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gem. Art. 6 Abs. 1 lit. a oder Art. 9 Abs. 2 lit. a DSGVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(3) Sie legen gem. Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine vorrangigen berechtigten Gründe für die Verarbeitung vor, oder Sie legen gem. Art. 21 Abs. 2 DSGVO Widerspruch gegen die Verarbeitung ein." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(4) Die Sie betreffenden personenbezogenen Daten wurden unrechtmäßig verarbeitet." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(5) Die Löschung der Sie betreffenden personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem der Verantwortliche unterliegt." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(6) Die Sie betreffenden personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß Art. 8 Abs. 1 DSGVO erhoben." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H4", |
||||||
|
"value":"b) Information an Dritte" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Hat der Verantwortliche die Sie betreffenden personenbezogenen Daten öffentlich gemacht und ist er gem. Art. 17 Abs. 1 DSGVO zu deren Löschung verpflichtet, so trifft er unter Berücksichtigung der verfügbaren Technologie und der Implementierungskosten angemessene Maßnahmen, auch technischer Art, um für die Datenverarbeitung Verantwortliche, die die personenbezogenen Daten verarbeiten, darüber zu informieren, dass Sie als betroffene Person von ihnen die Löschung aller Links zu diesen personenbezogenen Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H4", |
||||||
|
"value":"c) Ausnahmen" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Das Recht auf Löschung besteht nicht, soweit die Verarbeitung erforderlich ist" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) zur Ausübung des Rechts auf freie Meinungsäußerung und Information;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) zur Erfüllung einer rechtlichen Verpflichtung, die die Verarbeitung nach dem Recht der Union oder der Mitgliedstaaten, dem der Verantwortliche unterliegt, erfordert, oder zur Wahrnehmung einer Aufgabe, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, die dem Verantwortlichen übertragen wurde;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(3) aus Gründen des öffentlichen Interesses im Bereich der öffentlichen Gesundheit gemäß Art. 9 Abs. 2 lit. h und i sowie Art. 9 Abs. 3 DSGVO;" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(4) für im öffentlichen Interesse liegende Archivzwecke, wissenschaftliche oder historische Forschungszwecke oder für statistische Zwecke gem. Art. 89 Abs. 1 DSGVO, soweit das unter Abschnitt a) genannte Recht voraussichtlich die Verwirklichung der Ziele dieser Verarbeitung unmöglich macht oder ernsthaft beeinträchtigt, oder" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(5) zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Recht auf Unterrichtung gemäß Art. 19 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Haben Sie das Recht auf Berichtigung, Löschung oder Einschränkung der Verarbeitung gegenüber dem Verantwortlichen geltend gemacht, ist dieser verpflichtet, allen Empfängern, denen die Sie betreffenden personenbezogenen Daten offengelegt wurden, diese Berichtigung oder Löschung der Daten oder Einschränkung der Verarbeitung mitzuteilen, es sei denn, dies erweist sich als unmöglich oder ist mit einem unverhältnismäßigen Aufwand verbunden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Ihnen steht gegenüber dem Verantwortlichen das Recht zu, über diese Empfänger unterrichtet zu werden." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Recht auf Datenübertragbarkeit gemäß Art. 20 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie dem Verantwortlichen bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten. Außerdem haben Sie das Recht diese Daten einem anderen Verantwortlichen ohne Behinderung durch den Verantwortlichen, dem die personenbezogenen Daten bereitgestellt wurden, zu übermitteln, sofern" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) die Verarbeitung auf einer Einwilligung gem. Art. 6 Abs. 1 lit. a DSGVO oder Art. 9 Abs. 2 lit. a DSGVO oder auf einem Vertrag gem. Art. 6 Abs. 1 lit. b DSGVO beruht und" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) die Verarbeitung mithilfe automatisierter Verfahren erfolgt." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"In Ausübung dieses Rechts haben Sie ferner das Recht, zu erwirken, dass die Sie betreffenden personenbezogenen Daten direkt von einem Verantwortlichen einem anderen Verantwortlichen übermittelt werden, soweit dies technisch machbar ist. Freiheiten und Rechte anderer Personen dürfen hierdurch nicht beeinträchtigt werden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Das Recht auf Datenübertragbarkeit gilt nicht für eine Verarbeitung personenbezogener Daten, die für die Wahrnehmung einer Aufgabe erforderlich ist, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, die dem Verantwortlichen übertragen wurde." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H3", |
||||||
|
"value":"Widerspruchsrecht gemäß Art. 21 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Der Verantwortliche verarbeitet die Sie betreffenden personenbezogenen Daten nicht mehr, es sei denn, er kann zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen; dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Widersprechen Sie der Verarbeitung für Zwecke der Direktwerbung, so werden die Sie betreffenden personenbezogenen Daten nicht mehr für diese Zwecke verarbeitet." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben die Möglichkeit, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft - ungeachtet der Richtlinie 2002/58/EG - Ihr Widerspruchsrecht mittels automatisierter Verfahren auszuüben, bei denen technische Spezifikationen verwendet werden." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H4", |
||||||
|
"value":"Recht auf Widerruf der datenschutzrechtlichen Einwilligungserklärung gemäß Art. 7 Abs. 3 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben das Recht, Ihre datenschutzrechtliche Einwilligungserklärung jederzeit zu widerrufen. Durch den Widerruf der Einwilligung wird die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt." |
||||||
|
} |
||||||
|
], |
||||||
|
[ |
||||||
|
{ |
||||||
|
"tag":"H4", |
||||||
|
"value":"Automatisierte Entscheidung im Einzelfall einschließlich Profiling gemäß Art. 22 DSGVO" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Sie haben das Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung - einschließlich Profiling - beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenüber rechtliche Wirkung entfaltet oder Sie in ähnlicher Weise erheblich beeinträchtigt. Dies gilt nicht, wenn die Entscheidung" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(1) für den Abschluss oder die Erfüllung eines Vertrags zwischen Ihnen und dem Verantwortlichen erforderlich ist," |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(2) aufgrund von Rechtsvorschriften der Union oder der Mitgliedstaaten, denen der Verantwortliche unterliegt, zulässig ist und diese Rechtsvorschriften angemessene Maßnahmen zur Wahrung Ihrer Rechte und Freiheiten sowie Ihrer berechtigten Interessen enthalten oder" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"(3) mit Ihrer ausdrücklichen Einwilligung erfolgt." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Allerdings dürfen diese Entscheidungen nicht auf besonderen Kategorien personenbezogener Daten nach Art. 9 Abs. 1 DSGVO beruhen, sofern nicht Art. 9 Abs. 2 lit. a oder g DSGVO gilt und angemessene Maßnahmen zum Schutz der Rechte und Freiheiten sowie Ihrer berechtigten Interessen getroffen wurden." |
||||||
|
}, |
||||||
|
{ |
||||||
|
"tag":"P", |
||||||
|
"value":"Hinsichtlich der in (1) und (3) genannten Fälle trifft der Verantwortliche angemessene Maßnahmen, um die Rechte und Freiheiten sowie Ihre berechtigten Interessen zu wahren, wozu mindestens das Recht auf Erwirkung des Eingreifens einer Person seitens des Verantwortlichen, auf Darlegung des eigenen Standpunkts und auf Anfechtung der Entscheidung gehört." |
||||||
|
} |
||||||
|
] |
||||||
|
] |
@ -0,0 +1,141 @@ |
|||||||
|
var currenttext = ""; |
||||||
|
var longer_active = false; |
||||||
|
var current_tags = "{}"; |
||||||
|
|
||||||
|
var result = "ERROR"; |
||||||
|
var original_text = "ERROR"; |
||||||
|
var current_sum =""; |
||||||
|
|
||||||
|
|
||||||
|
console.log( "Background - Loaded" ); |
||||||
|
var privacy_location= "https://www.uni-hannover.de/datenschutzerklaerung/"; |
||||||
|
|
||||||
|
/** |
||||||
|
* This function will be fired if a javascript, sending a message to Firefox. |
||||||
|
* The scripts cannont send messages directly to other scripts. They have to create a so called "promise first" |
||||||
|
* |
||||||
|
**/ |
||||||
|
async function listener(msg){ |
||||||
|
try{ |
||||||
|
console.log("hallo vom bg script"); |
||||||
|
if(msg.auswertung === "auswerten"){
|
||||||
|
return Promise.resolve({msg: result}); |
||||||
|
} else if(msg.auswertung === "getCurrent"){ |
||||||
|
return Promise.resolve({msg: currenttext}); |
||||||
|
} else if(msg.auswertung === "getTags"){ |
||||||
|
return Promise.resolve({msg: current_tags});
|
||||||
|
} else if(msg.createadvanced === "context"){ |
||||||
|
await browser.tabs.query({active: true, currentWindow: true}) |
||||||
|
.then(tabs => { |
||||||
|
tab = tabs.pop();
|
||||||
|
console.log(tab.url); |
||||||
|
privacy_location = tab.url; |
||||||
|
}); |
||||||
|
console.log("leite weiter an das content");
|
||||||
|
browser.tabs.sendMessage(tab.id, {func: "create_advanced", advanced: current_sum}); |
||||||
|
//console.log(response);
|
||||||
|
|
||||||
|
} else if(msg.auswertung === "summary"){ |
||||||
|
current_sum = msg.set; |
||||||
|
} else if(msg.auswertung === "getsum"){ |
||||||
|
return Promise.resolve({msg: current_sum}); |
||||||
|
} else if(msg.auswertung === "getoriginal"){ |
||||||
|
return Promise.resolve({msg: original_text}); |
||||||
|
} else if(msg.auswertung === "get_privacy_location"){ |
||||||
|
return Promise.resolve({url: privacy_location}); |
||||||
|
} else if(msg.get === "summary"){ |
||||||
|
var html_code = "ERR"; |
||||||
|
var tab = ""; |
||||||
|
await browser.tabs.query({active: true, currentWindow: true}) |
||||||
|
.then(tabs => { |
||||||
|
tab = tabs.pop();
|
||||||
|
console.log(tab.url); |
||||||
|
privacy_location = tab.url; |
||||||
|
});
|
||||||
|
await browser.tabs.sendMessage(tab.id, {func: "get_policy"}).then(response => { |
||||||
|
console.log(response); |
||||||
|
html_code = response.html; |
||||||
|
//console.log(html_code);
|
||||||
|
});
|
||||||
|
return Promise.resolve({back: html_code});
|
||||||
|
} else if(msg.get === "summary_with_id"){ |
||||||
|
var html_code = "ERR"; |
||||||
|
var tab = ""; |
||||||
|
await browser.tabs.query({active: true, currentWindow: true}) |
||||||
|
.then(tabs => { |
||||||
|
tab = tabs.pop();
|
||||||
|
console.log(tab.url); |
||||||
|
privacy_location = tab.url; |
||||||
|
});
|
||||||
|
console.log("dieser Promise backend"); |
||||||
|
await browser.tabs.sendMessage(tab.id, {func: "get_policy_and_id"}).then(response => { |
||||||
|
console.log(response); |
||||||
|
html_code = response.html; |
||||||
|
//console.log(html_code);
|
||||||
|
});
|
||||||
|
return Promise.resolve({back: html_code});
|
||||||
|
} else if(msg.auswertung == "check_if_dsgvo") { |
||||||
|
await browser.tabs.query({active: true, currentWindow: true}) |
||||||
|
.then(tabs => { |
||||||
|
tab = tabs.pop();
|
||||||
|
console.log(tab.url); |
||||||
|
privacy_location = tab.url; |
||||||
|
});
|
||||||
|
console.log("checke auf dsgvo"); |
||||||
|
let dsgvo = false; |
||||||
|
let thirdparty = ""; |
||||||
|
await browser.tabs.sendMessage(tab.id, {func: "check_if_dsgvo"}).then(response => { |
||||||
|
console.log(response.is_dsgvo); |
||||||
|
dsgvo = response.is_dsgvo; |
||||||
|
thirdparty = response.third; |
||||||
|
console.log(thirdparty); |
||||||
|
});
|
||||||
|
return Promise.resolve({is_dsgvo: dsgvo, third: thirdparty});
|
||||||
|
} else {
|
||||||
|
return Promise.resolve({result: ""}); |
||||||
|
} |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function is connection the content-script and tries to get the url from the tab where the content-script is running |
||||||
|
*/ |
||||||
|
function getInfosFromContentScript(stmt){ |
||||||
|
var html_code = "ERR"; |
||||||
|
browser.tabs.query({active: true, currentWindow: true}) |
||||||
|
.then(tabs => { |
||||||
|
let tab = tabs.pop();
|
||||||
|
console.log(tab.url); |
||||||
|
privacy_location = tab.url; |
||||||
|
browser.tabs.sendMessage(tab.id, {func: stmt}).then(response => { |
||||||
|
//console.log(response);
|
||||||
|
html_code = response.html; |
||||||
|
console.log(html_code); |
||||||
|
return Promise.resolve({html: response.html}); |
||||||
|
}) |
||||||
|
}); |
||||||
|
return html_code; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Debug function for the tab change bug
|
||||||
|
*/ |
||||||
|
function debug(){ |
||||||
|
browser.tabs.query({}) |
||||||
|
.then(tabs => { |
||||||
|
console.log(tabs.length + " anzahl der tabs");
|
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/*chrome.tabs.onActivated.addListener(function(activeInfo) { |
||||||
|
console.log(activeInfo.tabId); |
||||||
|
});*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* register the listener |
||||||
|
*/ |
||||||
|
browser.runtime.onMessage.addListener(listener); |
@ -0,0 +1,29 @@ |
|||||||
|
/** |
||||||
|
* This script checks if a site is a gdpr policy. |
||||||
|
* It returns true or false |
||||||
|
*/ |
||||||
|
function checkpolicy(){ |
||||||
|
try { |
||||||
|
let result = 0; |
||||||
|
|
||||||
|
let keywords = ["gdpr", "legal", "article", "policy", "privacy", "CCPA"]; |
||||||
|
|
||||||
|
|
||||||
|
$("body *").each(function() { |
||||||
|
let tmp = $(this).text().toLowerCase(); |
||||||
|
for(let i = 0; i < keywords.length; i++){ |
||||||
|
if(tmp.includes(keywords[i])){ |
||||||
|
result = result + 1; |
||||||
|
}
|
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
if(result > 11){ |
||||||
|
return true; |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
}
|
||||||
|
} catch(e) { |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
/** |
||||||
|
* This function filters an email address from the open page. |
||||||
|
* It returns a list of email addresses |
||||||
|
*/ |
||||||
|
function email_address_extraction(){ |
||||||
|
let result = []; |
||||||
|
try{ |
||||||
|
|
||||||
|
|
||||||
|
$("body *").each(function() { |
||||||
|
let tex = $(this).text(); |
||||||
|
let regex = /[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-z]+/g; |
||||||
|
let tmp = tex.match(regex); |
||||||
|
if (tmp !== null){ |
||||||
|
//console.log("match!")
|
||||||
|
for(let i = 0; i < tmp.length; i++){ |
||||||
|
if(!result.includes(tmp[i])){ |
||||||
|
result.push(tmp[i]); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
return result; |
||||||
|
} |
@ -0,0 +1,367 @@ |
|||||||
|
/** |
||||||
|
* This document defines the faq cards. |
||||||
|
*/ |
||||||
|
|
||||||
|
// the close button of the faq
|
||||||
|
var close_button = `<button class='mdc-button mdc-button--raised' id='costum-close-button'>
|
||||||
|
<span class='mdc-button__label'>Close</span> |
||||||
|
</button>`; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// The answer to the question, what rights, according to the GDPR, a user has
|
||||||
|
var card_what_are_my_right_gdpr = ` |
||||||
|
<h2> According to article 15 GDPR </h2> |
||||||
|
<p> You have the right to be informed about your data</p> |
||||||
|
<h2>According to article 16 GDPR</h2> |
||||||
|
<p>You have the right to rectification.<br>For example, you move to another town, you can cause that your new address will be changed in your data.</p> |
||||||
|
<h2>According to article 17 GDPR</h2> |
||||||
|
<p>You have the right of obligation to delete.</p> |
||||||
|
<h2>According to article 18 GDPR</h2> |
||||||
|
<p>You have the right to restrict the processing of your data.</p> |
||||||
|
<h2>According to article 19 GDPR</h2> |
||||||
|
<p>You have the right to be informed.</p> |
||||||
|
<h2>According to article 20 GDPR</h2> |
||||||
|
<p>You have the right to data portability.</p> |
||||||
|
<h2>According to article 77 GDPR</h2> |
||||||
|
<p>You have the right to lodge a complaint with a supervisory authority.</p> |
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
// The answer to the question, what techical-data are.
|
||||||
|
var text_what_is_techicaldata = ` |
||||||
|
<p> Processing data are data they have to collect for the technical aspect to provide this service. For example, you want to visit a website and your computer using his address to get the website you want to see. After that, this site provider collects your IP-address to know where he has to send his site. Technical data can also be personal data. </p> |
||||||
|
`;
|
||||||
|
|
||||||
|
// The answer to the question, what personal data are.
|
||||||
|
var text_what_is_perosnal_data = `</p>Personal data are these types of data, that are clearly identify you as a person.
|
||||||
|
For example, your name, e-mail address, or photos. |
||||||
|
But there are also personal data that are more complex but associated with you. |
||||||
|
For example, amazon tracks your behavior on their online-shop. |
||||||
|
They track your mouse movement or what you are typing inside the search box. |
||||||
|
They do it to know you better and give you better pre-purchase effects.</p>`; |
||||||
|
|
||||||
|
// The answer to the question, what anonymised are.
|
||||||
|
var text_what_is_anonymised_data = `<p>Anonymized data are these types of data that can't be associated with you. The company won't need permission to collect anonymized data.
|
||||||
|
For example, the company want to know where their customers come from and stores the information where the connect come from.</p>`; |
||||||
|
|
||||||
|
// The answer to the question, what cookies are.
|
||||||
|
var text_what_are_cookes = ` |
||||||
|
<p>Cookies are information that a web service stores on your computer. |
||||||
|
They are many types of them: </p> |
||||||
|
|
||||||
|
<h2>First-party cookies: </h2> |
||||||
|
<p>These cookies are to provide functionality for the user. |
||||||
|
For example, you put an order in the shopping cart. A cookie will be store the information that you ordered. </p> |
||||||
|
|
||||||
|
<h2>third-party cookies: </h2> |
||||||
|
<p>These types of cookies are not directly set by a website.
|
||||||
|
For example, if a service uses third-party elements like ads. |
||||||
|
They can be used to track you. </p> |
||||||
|
|
||||||
|
<h2>Session Cookies:</h2> |
||||||
|
<p>These cookies are to keep you logged in inside a website. |
||||||
|
For example, if you log in to Facebook, you will have somewhere a session cookie that keeps you logged in. |
||||||
|
These types of cookies will be destroyed after closing a browser.</p> |
||||||
|
|
||||||
|
<h2>Persistent Cookies:</h2> |
||||||
|
These cookies stores information over a longer period. |
||||||
|
For example, you are logged inside Facebook. You shut down your computer and come back some days later and you are still logged in. |
||||||
|
Then you have a Persistent cookie</p> |
||||||
|
|
||||||
|
<h2>Secure Cookies:</h2> |
||||||
|
<p>These cookies stores encrypted information like bank credentials.</p> |
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
|
||||||
|
// The the text to explain third party cookies if you they still active after deactivation
|
||||||
|
var text_tracking_cookies = ` |
||||||
|
|
||||||
|
<p> third party domain cookies are maybe tracking you. |
||||||
|
On the cookie tab inside the pop-up window, you get there a list of all active cookies in this open site.
|
||||||
|
if you are refused some cookies, but they are still active, you can directly contact the owner of this service or the <a href ='https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/AufsBehoerdFuerDenNichtOeffBereich/AufsichtsbehoerdenNichtOeffBereich_liste.html' > |
||||||
|
authority</a> to get help. </p> |
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
// The answer to the question, what rights, according to the GDPR, a user has
|
||||||
|
var text_what_they_knew_about_me = ` |
||||||
|
<p> |
||||||
|
You can directly contact the service provider to know what he knows about you.
|
||||||
|
You can also ask him to give you what he knows about you in a machine and human-readable form like XML </p> |
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
// The answer to the question, what rights, according to the GDPR, a user has
|
||||||
|
var text_how_i_can_refuse = ` |
||||||
|
<p> You can every time refuse the processing of your data or at least a part by directly contacting the provider.
|
||||||
|
If the provider deletes your data or a part of them depends if you have a contract with him. |
||||||
|
</p> |
||||||
|
`;
|
||||||
|
|
||||||
|
|
||||||
|
// The answer to the question, what rights, according to the GDPR, a user has
|
||||||
|
var text_what_to_do_if_need_help = `<p> If you think the provider misuse your data please contact your local
|
||||||
|
<a href ='https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/AufsBehoerdFuerDenNichtOeffBereich/AufsichtsbehoerdenNichtOeffBereich_liste.html' > |
||||||
|
authority</a></p>`; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* These are the buttons to open an answer to a question. |
||||||
|
*/ |
||||||
|
var button_what_are_my_rights = "<button class='mdc-button mdc-button--raised' id='button-what-are-my-rights'><span class='mdc-button__label'>What are my rights?</span></button>"; |
||||||
|
var button_what_is_technicaldata ="<button class='mdc-button mdc-button--raised' id='button-what-is-technicaldata'><span class='mdc-button__label'>What are processing data?</span></button>"; |
||||||
|
var button_what_are_personal_data ="<button class='mdc-button mdc-button--raised' id='button-what-are-personal-data'><span class='mdc-button__label'>What are personal data?</span></button>"; |
||||||
|
var button_what_are_anonymised_data ="<button class='mdc-button mdc-button--raised' id='button-what-are-anonymised-data'><span class='mdc-button__label'>What are anonymised data?</span></button>"; |
||||||
|
var button_what_techical_data ="<button class='mdc-button mdc-button--raised' id='button-what-techical-data'><span class='mdc-button__label'>Which data does this service proceed?</span></button>"; |
||||||
|
var button_what_personal_data ="<button class='mdc-button mdc-button--raised' id='button-what-personal-data'><span class='mdc-button__label'>Which personal data can be collected?</span></button>"; |
||||||
|
var button_what_are_cookies ="<button class='mdc-button mdc-button--raised' id='button-what-are-cookies'><span class='mdc-button__label'>What are cookies?</span></button>"; |
||||||
|
var button_what_third ="<button class='mdc-button mdc-button--raised' id='button-what-third'><span class='mdc-button__label'>Which thirdparties can be involved</span></button>"; |
||||||
|
var button_what_which_cookies_are_tracking_me ="<button class='mdc-button mdc-button--raised' id='button-what-which-cookies-are-tracking-me'><span class='mdc-button__label'>Which cookies are tracking me</span></button>"; |
||||||
|
var button_what_can_i_do_to_refuse ="<button class='mdc-button mdc-button--raised' id='button-what-can-i-do-to-refuse'><span class='mdc-button__label'>Where can i refuse the proceeding of my data?</span></button>"; |
||||||
|
var button_what_they_know_about_me ="<button class='mdc-button mdc-button--raised' id='button-what-they-know-about-me'><span class='mdc-button__label'>What should i do if i want to know what they knew about me</span></button>"; |
||||||
|
var button_what_need_help ="<button class='mdc-button mdc-button--raised' id='button-what-need-help'><span class='mdc-button__label'>What can i do if i think they violate my rights?</span></button>";
|
||||||
|
|
||||||
|
//This are the Material-Card for the question of what rights a user has.
|
||||||
|
var card_what_are_my_right = `<div class='mdc-card' id='card-what-are-my-right'>
|
||||||
|
<div class='title-h-picto-div'> |
||||||
|
<h1>What are my rights?</h1>` |
||||||
|
+getpic("lawyer") |
||||||
|
+"</div><hr>" |
||||||
|
+card_what_are_my_right_gdpr |
||||||
|
+`<button class='mdc-button' id='button-what-are-my-rights-close'>
|
||||||
|
<span class='mdc-button__ripple'></span> |
||||||
|
<span class='mdc-button__label'>CLose</span> |
||||||
|
</button> |
||||||
|
</div>`; |
||||||
|
|
||||||
|
// This is the material card for the question what technical data are
|
||||||
|
var card_what_is_technicaldata = `<div class='mdc-card' id='card-what-is-technicaldata'>
|
||||||
|
<div class='title-h-picto-div'> |
||||||
|
<h1>What are processing data?</h1>` |
||||||
|
+getpic("wrench") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_is_techicaldata+"<button class='mdc-button' id='button-what-is-technicaldata-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what personal data are
|
||||||
|
var card_what_are_personal_data = `<div class='mdc-card' id='card-what-are-personal-data'>
|
||||||
|
<div class='title-h-picto-div'> |
||||||
|
<h1>What are personal data?</h1>` |
||||||
|
+getpic("dflt") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_is_perosnal_data+"<button class='mdc-button' id='button-what-are-personal-data-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what anonymised data are
|
||||||
|
var card_what_are_anonymised_data = `<div class='mdc-card' id='card-what-are-anonymised-data'><div class='title-h-picto-div'><h1>What are anonymised data?</h1>` |
||||||
|
+getpic("hide") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_is_anonymised_data+"<button class='mdc-button' id='button-what-are-anonymised-data-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what technical data are
|
||||||
|
var card_what_techical_data = `<div class='mdc-card' id='card-what-techical-data'><div class='title-h-picto-div'><h1>Which data does this service proceed?</h1>` |
||||||
|
+getpic("collect") |
||||||
|
+"</div><hr>" |
||||||
|
+"<div id='result-saved-technical' class='view-saved-values'></div><button class='mdc-button' id='button-what-techical-data-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what personal data is collected by a provider
|
||||||
|
var card_what_personal_data = `<div class='mdc-card' id='card-what-personal-data'><div class='title-h-picto-div'><h1>Which personal data can be collected?</h1>` |
||||||
|
+getpic("dflt") |
||||||
|
+"</div><hr>" |
||||||
|
+"<button class='mdc-button' id='button-what-personal-data-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what cookies are
|
||||||
|
var card_what_are_cookies = `<div class='mdc-card' id='card-what-are-cookies'><div class='title-h-picto-div'><h1>What are cookies?</h1>` |
||||||
|
+getpic("cookie") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_are_cookes+"<button class='mdc-button' id='button-what-are-cookies-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what thirdpartys also collect data
|
||||||
|
var card_what_third = `<div class='mdc-card' id='card-what-third'><div class='title-h-picto-div'><h1>Which thirdparties can be involved?</h1>` |
||||||
|
+getpic("thirdpartyexp") |
||||||
|
+"</div><hr>" |
||||||
|
+"<div id='result-saved-third' class='view-saved-values'></div><button class='mdc-button' id='button-what-third-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question which cookies can track
|
||||||
|
var card_what_which_cookies_are_tracking_me = `<div class='mdc-card' id='card-what-which-cookies-are-tracking-me'><div class='title-h-picto-div'><h1>Which cookies are tracking me?</h1>` |
||||||
|
+getpic("magnifyingglass") |
||||||
|
+"</div><hr>" |
||||||
|
+text_tracking_cookies +"<button class='mdc-button' id='button-what-which-cookies-are-tracking-me-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question how to refuse the proceeding of personal data
|
||||||
|
var card_what_can_i_do_to_refuse = `<div class='mdc-card' id='card-what-can-i-do-to-refuse'><div class='title-h-picto-div'><h1>Where can i refuse the proceeding of my data?</h1>` |
||||||
|
+getpic("contactexp") |
||||||
|
+"</div><hr>" |
||||||
|
+text_how_i_can_refuse+"<div id='email-refuse'></div><button class='mdc-button' id='button-what-can-i-do-to-refuse-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what data the provider knew about a person
|
||||||
|
var card_what_they_know_about_me = `<div class='mdc-card' id='card-what-they-know-about-me'><div class='title-h-picto-div'><h1>What should i do if i want to know what they knew about me?</h1>` |
||||||
|
+getpic("book") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_they_knew_about_me+"<div id='email-knew'></div><button class='mdc-button' id='button-what-they-know-about-me-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
// This is the material card for the question what data are
|
||||||
|
var card_what_need_help = `<div class='mdc-card' id='card-what-need-help'><div class='title-h-picto-div'><h1>What can i do if i think they violate my rights?</h1>` |
||||||
|
+getpic("help") |
||||||
|
+"</div><hr>" |
||||||
|
+text_what_to_do_if_need_help+"<div id='email-help'></div><button class='mdc-button' id='button-what-need-help-close'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>close</span></button></div>"; |
||||||
|
|
||||||
|
|
||||||
|
// this function inits the Material-Cards for the faq
|
||||||
|
function init_cards(){ |
||||||
|
console.log("init the cards"); |
||||||
|
$("#card-what-are-my-right").hide(); |
||||||
|
$("#card-what-is-technicaldata").hide(); |
||||||
|
$("#card-what-are-personal-data").hide(); |
||||||
|
$("#card-what-are-anonymised-data").hide(); |
||||||
|
$("#card-what-techical-data").hide(); |
||||||
|
$("#card-what-personal-data").hide(); |
||||||
|
$("#card-what-third").hide(); |
||||||
|
$("#card-what-which-cookies-are-tracking-me").hide(); |
||||||
|
$("#card-what-can-i-do-to-refuse").hide(); |
||||||
|
$("#card-what-they-know-about-me").hide(); |
||||||
|
$("#card-what-need-help").hide(); |
||||||
|
$("#card-what-are-cookies").hide();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//this function inits the question buttons
|
||||||
|
function init_buttons_cards(){ |
||||||
|
$("#button-what-are-my-rights").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-are-my-right").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-is-technicaldata").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-is-technicaldata").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-are-personal-data").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-are-personal-data").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-are-anonymised-data").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-are-anonymised-data").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-techical-data").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-techical-data").show() |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-personal-data").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-personal-data").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-third").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-third").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-which-cookies-are-tracking-me").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-which-cookies-are-tracking-me").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-can-i-do-to-refuse").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-can-i-do-to-refuse").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-they-know-about-me").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-they-know-about-me").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
$("#button-what-need-help").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-need-help").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#close-card").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#button-what-are-cookies").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#card-what-are-cookies").show(); |
||||||
|
$(this).hide(); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// this function defines the close buttons of a Material-Card
|
||||||
|
function init_buttons_close(){ |
||||||
|
$("#button-what-are-my-rights-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-are-my-rights").show(); |
||||||
|
console.log($(this).parent()); |
||||||
|
}); |
||||||
|
$("#button-what-is-technicaldata-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-is-technicaldata").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-are-personal-data-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-are-personal-data").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-are-anonymised-data-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-are-anonymised-data").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-techical-data-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-techical-data").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-personal-data-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-personal-data").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-third-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-third").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-can-i-do-to-refuse-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-can-i-do-to-refuse").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-they-know-about-me-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-they-know-about-me").show(); |
||||||
|
console.log("hallo"); |
||||||
|
}); |
||||||
|
$("#button-what-need-help-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-need-help").show(); |
||||||
|
console.log("hallo"); |
||||||
|
});
|
||||||
|
$("#button-what-are-cookies-close").click(function(){ |
||||||
|
$(this).parent().hide(); |
||||||
|
$("#button-what-are-cookies").show(); |
||||||
|
console.log("hallo"); |
||||||
|
});
|
||||||
|
|
||||||
|
$("#button-what-which-cookies-are-tracking-me-close").click(function(){ |
||||||
|
console.log("hallo"); |
||||||
|
$("#button-what-which-cookies-are-tracking-me").show(); |
||||||
|
$(this).parent().hide(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#costum-close-button").click(function(){ |
||||||
|
location.reload(true); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,213 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html lang="de"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<title>More</title> |
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> |
||||||
|
<!-- <script src="js/mainmenuscripts.js"></script> --> |
||||||
|
<link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet"> |
||||||
|
<script src="https://unpkg.com/material-components-web@8.0.0/dist/material-components-web.min.js"></script> |
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com"> |
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300&display=swap" rel="stylesheet"> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/style_longer.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<header class="mdc-top-app-bar--fixed"> |
||||||
|
<div class="mdc-top-app-bar__row"> |
||||||
|
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start"> |
||||||
|
<span class="mdc-top-app-bar__title">Privacy Check!</span> |
||||||
|
</section> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<div class="container"> |
||||||
|
<h1> If you want to sharpen your Browser to assist your Privacy, please follow these steps: </h1> |
||||||
|
<p> Please open the settings of this Browser and go to "privacy and security". </p> |
||||||
|
<p> Please select the strict option. </p> |
||||||
|
<img src="../pic_data_base/firefox-1.jpg" height="756" width="950"> |
||||||
|
<p> Please go to "Firefox Data Collection and Use" and unmark everything</p> |
||||||
|
<img src="../pic_data_base/firefox-2.jpg" height="756" width="950"> |
||||||
|
<p> Please go to "Security" and mark everything</p> |
||||||
|
<img src="../pic_data_base/firefox-3.jpg" height="756" width="950"> |
||||||
|
<p> Please go to "Https-Only Mode" and mark everything </p> |
||||||
|
<img src="../pic_data_base/firefox-4.jpg" height="756" width="950"> |
||||||
|
<hr> |
||||||
|
<h1>Your Rights:</h1> |
||||||
|
<h2> According to article 15 GDPR </h2> |
||||||
|
<p> You have the right to be informed about your data</p> |
||||||
|
<h2>According to article 16 GDPR</h2> |
||||||
|
<p>You have the right to rectification.<br>For example, you move to another town, you can cause that your new address will be changed in your data.</p> |
||||||
|
<h2>According to article 17 GDPR</h2> |
||||||
|
<p>You have the right of obligation to delete.</p> |
||||||
|
<h2>According to article 18 GDPR</h2> |
||||||
|
<p>You have the right to restrict the processing of your data.</p> |
||||||
|
<h2>According to article 19 GDPR</h2> |
||||||
|
<p>You have the right to be informed.</p> |
||||||
|
<h2>According to article 20 GDPR</h2> |
||||||
|
<p>You have the right to data portability.</p> |
||||||
|
<h2>According to article 77 GDPR</h2> |
||||||
|
<p>You have the right to lodge a complaint with a supervisory authority.</p> |
||||||
|
<hr> |
||||||
|
<h1>Cookies</h1> |
||||||
|
<p>Cookies are information that a web service stores on your computer. |
||||||
|
They are many types of them: </p> |
||||||
|
|
||||||
|
<h2>First-party cookies: </h2> |
||||||
|
<p>These cookies are to provide functionality for the user. |
||||||
|
For example, you put an order in the shopping cart. A cookie will be store the information that you ordered. </p> |
||||||
|
|
||||||
|
<h2>third-party cookies: </h2> |
||||||
|
<p>These types of cookies are not directly set by a website. |
||||||
|
For example, if a service uses third-party elements like ads. |
||||||
|
They can be used to track you. </p> |
||||||
|
|
||||||
|
<h2>Session Cookies:</h2> |
||||||
|
<p>These cookies are to keep you logged in inside a website. |
||||||
|
For example, if you log in to Facebook, you will have somewhere a session cookie that keeps you logged in. |
||||||
|
These types of cookies will be destroyed after closing a browser.</p> |
||||||
|
|
||||||
|
<h2>Persistent Cookies:</h2> |
||||||
|
<p>These cookies stores information over a longer period. |
||||||
|
For example, you are logged inside Facebook. You shut down your computer and come back some days later and you are still logged in. |
||||||
|
Then you have a Persistent cookie</p> |
||||||
|
|
||||||
|
<h2>Secure Cookies:</h2> |
||||||
|
<p>These cookies stores encrypted information like bank credentials.</p> |
||||||
|
<hr> |
||||||
|
<h1> Credits / Lizenzen </h1> |
||||||
|
<p> All Icons are from https://freeicons.io/ </p> |
||||||
|
<p> Thanks to all creators for their incredible work!</p> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/twitter.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/whatsapp.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/apple.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/datum.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/730">Anu Rocks</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/dflt.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/2257">www.wishforge.games</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/facebook.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/firefox.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/google.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/hide.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/instagram.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/823">Muhammad Haq</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/book.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/823">Muhammad Haq</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/youtube.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/823">Muhammad Haq</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/wrench.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/823">Muhammad Haq</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/isp.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3335">MD Badsha Meah</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/lawyer.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/5596" width="64" height="64">shivani</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/law_hammer.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3031">AnjuP</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/cookie.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3156">constantino co</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/linux.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/726">Free Preloaders</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/location.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/730">Anu Rocks</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/warning.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/730">Anu Rocks</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/magnifyingglass.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3335">MD Badsha Meah</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/microsoft.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/714">Raj Dev</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/privacy.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3335">MD Badsha Meah</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/screensize.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3">icon king1</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/thirdparty.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/723">DotFix Technologies</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/toforward.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/714">Raj Dev</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/ok.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/726">Free Preloaders</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/webpage.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/5876">IYIKON</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/assist.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/5876">IYIKON</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/collect.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/5596">shivani</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/thirdpartyexp.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3054">Nine One</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/contactexp.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/3335">MD Badsha Meah</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
<div class="icon-link-div"> |
||||||
|
<img src="../pic_data_base/email.png" width="64" height="64"> |
||||||
|
Icon by <a href="https://freeicons.io/profile/714">Raj Dev</a> on <a href="https://freeicons.io">freeicons.io</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,46 @@ |
|||||||
|
@keyframes loading { |
||||||
|
0% { |
||||||
|
transform: translateX(-150%) scale(1); |
||||||
|
} |
||||||
|
25% { |
||||||
|
transform: translateX(0%) scale(0.5); |
||||||
|
} |
||||||
|
50% { |
||||||
|
transform: translateX(150%) scale(1); |
||||||
|
} |
||||||
|
75% { |
||||||
|
transform: translateX(0%) scale(0.5); |
||||||
|
} |
||||||
|
100% { |
||||||
|
transform: translateX(-150%) scale(1); |
||||||
|
} |
||||||
|
} |
||||||
|
@keyframes spinner { |
||||||
|
0% { |
||||||
|
transform: rotate(0); |
||||||
|
} |
||||||
|
100% { |
||||||
|
transform: rotate(360deg); |
||||||
|
} |
||||||
|
} |
||||||
|
@keyframes fadecheck { |
||||||
|
0% { |
||||||
|
opacity: 0; |
||||||
|
} |
||||||
|
50% { |
||||||
|
opacity: 1; |
||||||
|
} |
||||||
|
100% { |
||||||
|
opacity: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
@keyframes longer-lightning { |
||||||
|
50% { |
||||||
|
background-color: #2196F3; |
||||||
|
color: #FFFFFF; |
||||||
|
} |
||||||
|
100% { |
||||||
|
background-color: white; |
||||||
|
color: black; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,3 @@ |
|||||||
|
These are generated css files. |
||||||
|
If you want to know how to generate theese, please show in the root folder of this project in sass-env/. |
||||||
|
|
@ -0,0 +1,83 @@ |
|||||||
|
/** |
||||||
|
* These Scripts are the "connectors" to the server |
||||||
|
*/ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * |
||||||
|
* This function checks if the nlp-server is running |
||||||
|
*/ |
||||||
|
|
||||||
|
function checkServerStatus(){ |
||||||
|
$.getJSON('http://jt-info.de:5000/info', { |
||||||
|
}, function(data){
|
||||||
|
return true; |
||||||
|
}).fail(function() { |
||||||
|
return false; |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * |
||||||
|
* This function sends the policy to the nlp-server and returns the nlp-strukture |
||||||
|
*
|
||||||
|
* @param contexts json |
||||||
|
* @return result from the server |
||||||
|
* */ |
||||||
|
function getSummaryFromServer(contexts){ |
||||||
|
let result = "failed"; |
||||||
|
let err = "error"; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
console.log(contexts); |
||||||
|
/*$.ajax({ |
||||||
|
type: "GET", |
||||||
|
url: 'http://jt-info.de:5000/tryspacy',
|
||||||
|
dataType: "json",
|
||||||
|
data: "a="+contexts, |
||||||
|
async: false,
|
||||||
|
success: function(json){
|
||||||
|
//console.log(json);
|
||||||
|
result = json.answer; |
||||||
|
} , |
||||||
|
error: function(a){ |
||||||
|
return err; |
||||||
|
} |
||||||
|
});*/ |
||||||
|
$.ajax({ |
||||||
|
type: "GET", |
||||||
|
url: 'http://touch.se.uni-hannover.de:443/tryspacy',
|
||||||
|
dataType: "json",
|
||||||
|
data: "a="+contexts, |
||||||
|
async: false,
|
||||||
|
success: function(json){
|
||||||
|
//console.log(json);
|
||||||
|
result = json.answer; |
||||||
|
} , |
||||||
|
error: function(a){ |
||||||
|
return err; |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
/*$.ajax({ |
||||||
|
type: "GET", |
||||||
|
url: 'https://touch.se.uni-hannover.de:443/tryspacy',
|
||||||
|
dataType: "json",
|
||||||
|
data: "a="+contexts, |
||||||
|
async: false,
|
||||||
|
success: function(json){
|
||||||
|
//console.log(json);
|
||||||
|
result = json.answer; |
||||||
|
} , |
||||||
|
error: function(a){ |
||||||
|
return err; |
||||||
|
} |
||||||
|
});*/ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return result; |
||||||
|
} |
@ -0,0 +1,143 @@ |
|||||||
|
/* * |
||||||
|
* This function creates the cookie and ads context in the popup |
||||||
|
* returns a string containg a html.
|
||||||
|
* */ |
||||||
|
async function handleCookies(){ |
||||||
|
result = ""; |
||||||
|
$("#cookie-cards").empty(); |
||||||
|
var allcookies = []; |
||||||
|
await browser.cookies.getAll({}).then(response => { |
||||||
|
allcookies = response;
|
||||||
|
}); |
||||||
|
|
||||||
|
let tabs = browser.tabs.query({currentWindow: true, active: true}).then(tabs => { |
||||||
|
var activeTab = tabs.pop(); |
||||||
|
console.log(activeTab.url); |
||||||
|
browser.cookies.getAll({url: activeTab.url}).then(cookies => {
|
||||||
|
|
||||||
|
let regex = new RegExp("https?:\/\/(www\.)?[^\/]+\/"); |
||||||
|
console.log(thirdpartylinks); |
||||||
|
let result_thirdpartyscripts = []; |
||||||
|
let result_thirdlinks = ""; |
||||||
|
for(let i = 0; i < thirdpartylinks.length; i++){ |
||||||
|
let tmp = thirdpartylinks[i]; |
||||||
|
let tmp_arr = tmp.split("/"); |
||||||
|
//console.log(tmp.split("/"));
|
||||||
|
console.log(tmp_arr); |
||||||
|
let tmp_perfect = tmp_arr[2].split("."); |
||||||
|
if(tmp_perfect.length < 3){ |
||||||
|
if(!result_thirdlinks.includes(tmp_arr[2]) && tmp_arr[2].includes(".")){ |
||||||
|
result_thirdlinks += "<a href='https://duckduckgo.com/?q="+tmp_arr[2]+"'>"+ tmp_arr[2] +"</a>"; |
||||||
|
result_thirdpartyscripts.push(tmp_arr[2]); |
||||||
|
} |
||||||
|
} else { |
||||||
|
let result_domain = tmp_perfect[tmp_perfect.length-2]+"."+tmp_perfect[tmp_perfect.length-1]; |
||||||
|
if(!result_thirdlinks.includes(result_domain) && tmp_arr[2].includes(".")){
|
||||||
|
result_thirdpartyscripts.push(result_domain); |
||||||
|
result_thirdlinks += "<a href='https://duckduckgo.com/?q="+result_domain+"'>"+ result_domain +"</a>"; |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//let url = activeTab.url.match(regex);
|
||||||
|
let url = activeTab.url.split("/"); |
||||||
|
cookies_third_list = []; |
||||||
|
|
||||||
|
console.log(result_thirdpartyscripts); |
||||||
|
|
||||||
|
console.log(allcookies.length); |
||||||
|
|
||||||
|
|
||||||
|
for(let i = 0; i < allcookies.length; i++){ |
||||||
|
let tmp = allcookies[i]; |
||||||
|
for(let j = 0; j < result_thirdpartyscripts.length; j++){ |
||||||
|
if(allcookies.domain === result_thirdpartyscripts){ |
||||||
|
cookies_third_list.push(tmp); |
||||||
|
} |
||||||
|
|
||||||
|
if(allcookies.domain === "."+result_thirdpartyscripts){ |
||||||
|
cookies_third_list.push(tmp); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
console.log(cookies_third_list); |
||||||
|
console.log(url[2]); |
||||||
|
if(url[2].length == 0){ |
||||||
|
url[2] = ""; |
||||||
|
} |
||||||
|
|
||||||
|
let active_cookies = ""; |
||||||
|
if (cookies.length === 0){ |
||||||
|
active_cookies= "0 Cookies active.";
|
||||||
|
} else if(cookies.length === 1){ |
||||||
|
active_cookies= "1 Cookie active.";
|
||||||
|
} else { |
||||||
|
active_cookies = cookies.length+" Cookies active."; |
||||||
|
} |
||||||
|
|
||||||
|
var domain = url[2]; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$("#cookie-cards").append("<div id='cookie-cards'>"+ |
||||||
|
"<div class='mdc-card' id='cookie-card'>"
|
||||||
|
+ "<h3>"+url[2]+"</h3>" |
||||||
|
+ "<p class='cookie-p'>"+active_cookies +"</p>"
|
||||||
|
+ "<p>This Companys can inflate third party cookies or an ad on this site to track you:</p>" |
||||||
|
+ result_thirdlinks |
||||||
|
+ "</div>" |
||||||
|
+ "</div>" |
||||||
|
);
|
||||||
|
|
||||||
|
if (cookies.length > 1){ |
||||||
|
for(let cookie of cookies){ |
||||||
|
let cookiename = cookie.name; |
||||||
|
if (cookie.name.length > 10){ |
||||||
|
cookiename = cookie.value.substring(0,10) + "..."; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let tmp = "<div class='mdc-card cookie-card'>"
|
||||||
|
+ "<p class='cookie-p'>Cookie Name: "+ cookiename+"<br>" |
||||||
|
+ "Domain: " + cookie.domain |
||||||
|
+ "</p>";
|
||||||
|
|
||||||
|
|
||||||
|
let img = "ok"; |
||||||
|
let src = "'"+browser.runtime.getURL("pic_data_base/"+img+".png'");
|
||||||
|
|
||||||
|
$("#cookie-cards").append(tmp + "<img src="+src+" width=64 height=64>"+ "</div>"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (cookies_third_list.length > 1){ |
||||||
|
for(let cookie of cookies_third_list){ |
||||||
|
let cookiename = cookie.name; |
||||||
|
if (cookie.name.length > 10){ |
||||||
|
cookiename = cookie.value.substring(0,10) + "..."; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let tmp = "<div class='mdc-card cookie-card'>"
|
||||||
|
+ "<p class='cookie-p'>Cookie Name: "+ cookiename+"<br>" |
||||||
|
+ "Domain: " + cookie.domain |
||||||
|
+ "</p>";
|
||||||
|
|
||||||
|
|
||||||
|
let img = "warning"; |
||||||
|
let src = "'"+browser.runtime.getURL("pic_data_base/"+img+".png'");
|
||||||
|
|
||||||
|
$("#cookie-cards").append(tmp + "<img src="+src+" width=64 height=64>"+ "</div>"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
}); |
||||||
|
return result; |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
/** |
||||||
|
* This script is designed to switch language in the pop up window. |
||||||
|
* outated but can be used in the future. |
||||||
|
*
|
||||||
|
*/ |
||||||
|
|
||||||
|
|
||||||
|
var ger = null; |
||||||
|
var eng = null; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function loads english and german for the plugin |
||||||
|
* */ |
||||||
|
function loadLang(lang) { |
||||||
|
|
||||||
|
let tmp_lang = JSON.prase(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function changeLang(lang){ |
||||||
|
let tmp_lang = JSON.prase(data_eng); |
||||||
|
$("#tab_cookie").text(tmp_lang.tab_cookie); |
||||||
|
$("#tab_dsgvo").text(tmp_lang.tab_dsgvo); |
||||||
|
$("#tab_more").text(tmp_lang.tab_more); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,187 @@ |
|||||||
|
var site; |
||||||
|
var is_dsgvo = false; |
||||||
|
var thirdpartylinks = []; |
||||||
|
var os = "win"; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Typical start of a jquery script. |
||||||
|
* when the pop up pops up this function fires |
||||||
|
* |
||||||
|
* */ |
||||||
|
$(document).ready(async function(){ |
||||||
|
|
||||||
|
await browser.runtime.sendMessage({auswertung: "check_if_dsgvo"}).then( response => { |
||||||
|
try{ |
||||||
|
is_dsgvo = response.is_dsgvo; |
||||||
|
console.log("Super hat geklappt: "+ is_dsgvo); |
||||||
|
thirdpartylinks = JSON.parse(response.third); |
||||||
|
} catch(e){ |
||||||
|
state_cookies(); |
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
os = await browser.runtime.getPlatformInfo(); |
||||||
|
console.log(os); |
||||||
|
|
||||||
|
/** inits the start of the pop up context**/
|
||||||
|
first_init(is_dsgvo); |
||||||
|
$("#zsf-div").hide(); |
||||||
|
|
||||||
|
$("#cookie-tab-button").click(async function(){ |
||||||
|
state_cookies(); |
||||||
|
await handleCookies(); |
||||||
|
}); |
||||||
|
|
||||||
|
handleCookies(); |
||||||
|
|
||||||
|
$("#privacy-tab-button").click(function(){ |
||||||
|
state_privacycheck(is_dsgvo); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#about-tab-button").click(function(){ |
||||||
|
state_more(); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("#auswertenv2").click(function(){ |
||||||
|
$(".animation-container").show(); |
||||||
|
$("#auswertenv2").hide(); |
||||||
|
$("#auswerten-longer").hide();
|
||||||
|
$("#auswertenv2").removeClass("privacyfade"); |
||||||
|
$("#p_hint_for_press_privacy").hide(); |
||||||
|
$("#auswerten-longer").hide();
|
||||||
|
console.log("Dieser Promise main"); |
||||||
|
browser.runtime.sendMessage({get: "summary_with_id"}).then(response => { |
||||||
|
console.log("try to summarize"); |
||||||
|
console.log(response.back); |
||||||
|
|
||||||
|
|
||||||
|
contexts = response.back; |
||||||
|
console.log(JSON.parse(contexts)); |
||||||
|
|
||||||
|
//let result_list = getSummaryFromServer(JSON.parse(contexts));
|
||||||
|
let result_list = getSummaryFromServer(contexts); |
||||||
|
console.log(result_list); |
||||||
|
browser.runtime.sendMessage({auswertung: "summary", set: JSON.stringify(result_list)}); |
||||||
|
|
||||||
|
let html_saved = "<div class='mdc-card' class='saved-div'>"+create_short_summary_saved(result_list[0])+"</div>"; |
||||||
|
let html_third = "<div class='mdc-card' class='saved-div'>"+create_short_summary_third(result_list[1])+"</div>"; |
||||||
|
|
||||||
|
|
||||||
|
let html_cards = html_saved+html_third; |
||||||
|
|
||||||
|
|
||||||
|
$("#zsf-div").empty();
|
||||||
|
//$("#zsf-div").append(create_example_summary());
|
||||||
|
$("#zsf-div").append(html_cards); |
||||||
|
$("#zsf-div").show(); |
||||||
|
$("#auswerten-longer").show(); |
||||||
|
$("#auswerten-longer").show();
|
||||||
|
$(".animation-container").hide(); |
||||||
|
|
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("#weiteres").click(function(){ |
||||||
|
browser.tabs.create({ |
||||||
|
url:"aboutprivacycheck.html" |
||||||
|
});
|
||||||
|
window.close(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#auswerten-longer").click(function(){ |
||||||
|
console.log("creating advanced context"); |
||||||
|
|
||||||
|
browser.runtime.sendMessage({createadvanced: "context", set: JSON.stringify(contexts)}); |
||||||
|
window.close(); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#settings").click(function(){ |
||||||
|
$("#settings-div").show(); |
||||||
|
$("#settings-back").show(); |
||||||
|
state_settings(); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("#settings-back").click(function(){ |
||||||
|
state_more(); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("#switch-eng").click(function(){ |
||||||
|
del_switch_classes(); |
||||||
|
$(this).addClass("mdc-switch--checked"); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#switch-ger").click(function(){ |
||||||
|
del_switch_classes(); |
||||||
|
$(this).addClass("mdc-switch--checked"); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function creates a html tag |
||||||
|
**/ |
||||||
|
function createHTMLTag(tagName, value) { |
||||||
|
if (tagName === undefined){ |
||||||
|
return "<br><p> FEHLER </p>" |
||||||
|
} else { |
||||||
|
return "<"+tagName.toLowerCase()+">"+value+"</"+tagName.toLowerCase()+">"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function is getting the url of the active tab |
||||||
|
* its not used but can be used in the futere |
||||||
|
*/ |
||||||
|
function getUrl(){ |
||||||
|
|
||||||
|
site = "" |
||||||
|
|
||||||
|
Browser.tabs.query({ |
||||||
|
currentWindow: true,
|
||||||
|
active: true}) |
||||||
|
.then((tabs) => { |
||||||
|
let tab = tabs[0];
|
||||||
|
site = tabs.url; |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* * |
||||||
|
* Mandatory |
||||||
|
* */ |
||||||
|
function create_example_summary(){ |
||||||
|
console.log("Creating Example"); |
||||||
|
//let example = getExampleSummary();
|
||||||
|
let example = ""; |
||||||
|
|
||||||
|
browser.runtime.sendMessage({auswertung: "summary", set: example}); |
||||||
|
return example; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Mandatory |
||||||
|
**/ |
||||||
|
function example(){ |
||||||
|
setTimeout(function() { |
||||||
|
browser.runtime.sendMessage({get: "summary"}).then(response => { |
||||||
|
console.log("try to summarize"); |
||||||
|
console.log(response.back); |
||||||
|
//console.log(getContextList(response.back));
|
||||||
|
|
||||||
|
$("#zsf-div").empty();
|
||||||
|
$("#zsf-div").append(create_example_summary()); |
||||||
|
$("#zsf-div").show(); |
||||||
|
|
||||||
|
$(".animation-container").hide(); |
||||||
|
|
||||||
|
}); |
||||||
|
}, 3000); |
||||||
|
} |
After Width: | Height: | Size: 589 B |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 999 B |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 984 B |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,61 @@ |
|||||||
|
/** |
||||||
|
* This function search for a matching pictogram for the thirdparty |
||||||
|
* |
||||||
|
*/ |
||||||
|
function getpictogramthird(explaination){ |
||||||
|
let deflt = "thirdparty"; |
||||||
|
let src = "";
|
||||||
|
let tmp = explaination; |
||||||
|
|
||||||
|
let potential_keys = tmp.toLowerCase().split(" "); |
||||||
|
for(let i = 0; i < potential_keys.length;i++){ |
||||||
|
console.log(potential_keys[i]); |
||||||
|
if(potential_keys[i] in keys_en){ |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+keys_en[potential_keys[i]]+".png'"); |
||||||
|
break; |
||||||
|
} else { |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+deflt+".png'");
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
console.log(src); |
||||||
|
return "<div class='summary-picto-div'>"+"<image src="+src+ "width='32' height='32' >"+"<p class='summary-explain-p'>"+explaination+"</p>"+"</div>"; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function search for a matching pictogram for the collected data |
||||||
|
* |
||||||
|
*/ |
||||||
|
function getpictogramdata(explaination){ |
||||||
|
let dflt = "dflt"; |
||||||
|
let src = ""; |
||||||
|
let tmp = explaination.toLowerCase(); |
||||||
|
|
||||||
|
|
||||||
|
let potential_keys = tmp.split(" "); |
||||||
|
for(let i = 0; i < potential_keys.length;i++){ |
||||||
|
if(potential_keys[i] in keys_en){ |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+keys_en[potential_keys[i]]+".png'"); |
||||||
|
break; |
||||||
|
} else { |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+dflt+".png'");
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if(explaination.includes("operation syst")){ |
||||||
|
console.log("TREFFER"); |
||||||
|
console.log(os); |
||||||
|
switch(os.os){ |
||||||
|
case "win": src = "'"+browser.runtime.getURL("pic_data_base/"+"Microsoft"+".png'");
|
||||||
|
break; |
||||||
|
case "mac": src = "'"+browser.runtime.getURL("pic_data_base/"+"mac"+".png'");
|
||||||
|
break; |
||||||
|
case "linux": src = "'"+browser.runtime.getURL("pic_data_base/"+"linux"+".png'");
|
||||||
|
default: dflt = "dflt";
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
return "<div class='summary-picto-div'>"+"<image src="+src+" width='32' height='32' >"+"<p class='summary-explain-p'>"+explaination+"</p>"+"</div>"; |
||||||
|
} |
||||||
|
|
@ -0,0 +1,33 @@ |
|||||||
|
/** |
||||||
|
* The list of pictograms. |
||||||
|
* Every key is a pictogram assigned. |
||||||
|
*/ |
||||||
|
keys_en = { |
||||||
|
"apple": "apple", |
||||||
|
"date": "datum", |
||||||
|
"facebook": "facebook", |
||||||
|
"browser": "firefox", |
||||||
|
"google": "google", |
||||||
|
"instagram": "instagram", |
||||||
|
"ip": "location", |
||||||
|
"address": "location", |
||||||
|
"website": "webpage", |
||||||
|
"webpage": "webpage", |
||||||
|
"websites": "webpage", |
||||||
|
"webpages": "webpage", |
||||||
|
"microsoft": "Microsoft", |
||||||
|
"screensize": "screensize", |
||||||
|
"computer":"screensize", |
||||||
|
"screen": "screensize", |
||||||
|
"thirdparty": "thirdparty", |
||||||
|
"twitter": "twitter", |
||||||
|
"whatsapp": "whatsapp", |
||||||
|
"youtube": "youtube", |
||||||
|
"missing": "missing", |
||||||
|
"email": "email", |
||||||
|
"Email": "email", |
||||||
|
"mac": "apple", |
||||||
|
"linux":"linux", |
||||||
|
"win":"Microsoft" |
||||||
|
|
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
// This variables defines a html-string which containg a law.
|
||||||
|
var art_15 = "<div><p> According to article 15 GDPR: </p><p>You have the right to be informed about your data</p></div>" |
||||||
|
var art_16 = "<div><p> According to article 16 GDPR: </p><p>You have the right to rectification</p></div>" |
||||||
|
var art_17 = "<div><p> According to article 17 GDPR: </p><p>You have the right of obligation to delete.</p></div>" |
||||||
|
var art_18 = "<div><p> According to article 18 GDPR: </p><p>You have the right to restrict the processing of your data.</p></div>" |
||||||
|
var art_19 = "<div><p> According to article 19 GDPR: </p><p>You have the right to be informed.</p></div>" |
||||||
|
var art_20 = "<div><p> According to article 20 GDPR: </p><p>You have the right to data portability.</p></div>" |
||||||
|
var art_21 = "<div><p> According to article 21 GDPR: </p><p>You have the right to reject the processing of your data.</p></div>" |
||||||
|
var art_22 = "<div><p> According to article 22 GDPR: </p><p>You have the right to be free from the automatic decision-making of a computer.</p></div>" |
||||||
|
var art_77 = "<div><p> According to article 77 GDPR: </p><p>You have the right to lodge a complaint with a supervisory authority.</p></div>" |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function get_a_right(){ |
||||||
|
let arr = [art_15,art_16,art_17,art_18,art_19,art_20,art_21,art_22,art_77]; |
||||||
|
|
||||||
|
let right_card = "<div class='mdc-card' id='rightcard'> "; |
||||||
|
let random_number = Math.floor(Math.random() * Math.floor(9)); |
||||||
|
console.log(random_number); |
||||||
|
return "<div class='mdc-card' id='right-card'><image src="+"'../../pic_data_base/law_hammer.png'"+ "width='64' height='64' ><p>"+arr[random_number]+"</p></div>"; |
||||||
|
}
|
@ -0,0 +1,164 @@ |
|||||||
|
|
||||||
|
/** |
||||||
|
* This function fires when the active tabs changes |
||||||
|
* */ |
||||||
|
function delactiveclasses(){ |
||||||
|
$("#cookie-tab-button").removeClass("mdc-tab--active"); |
||||||
|
$("#privacy-tab-button").removeClass("mdc-tab--active"); |
||||||
|
$("#about-tab-button").removeClass("mdc-tab--active"); |
||||||
|
$("#span-cookie").removeClass("mdc-tab-indicator--active"); |
||||||
|
$("#span-privacy").removeClass("mdc-tab-indicator--active"); |
||||||
|
$("#span-about").removeClass("mdc-tab-indicator--active"); |
||||||
|
$("#auswertenv2").removeClass("privacyfade"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function hides all defined div inside a popup |
||||||
|
* */ |
||||||
|
function hide_all(){ |
||||||
|
$("#privacy-div").hide(); |
||||||
|
$("#zsf-div").hide(); |
||||||
|
$("#about-div").hide(); |
||||||
|
$("#privacy-div").hide(); |
||||||
|
$("#settings-back").hide(); |
||||||
|
$("#settings-div").hide(); |
||||||
|
$("#cookie-cards").hide(); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function hides buttons |
||||||
|
* */ |
||||||
|
function hide_all_button(){ |
||||||
|
$("#auswertenv2").hide(); |
||||||
|
$("#auswerten-longer").hide(); |
||||||
|
$("#more").hide(); |
||||||
|
$("#settings").hide(); |
||||||
|
$("#back").hide(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function initilize the pop-up window. |
||||||
|
*/ |
||||||
|
function first_init(is_dsgvo){ |
||||||
|
$("#auswerten-longer").hide(); |
||||||
|
$("#privacy-card").hide(); |
||||||
|
$("#about-card").hide();
|
||||||
|
$(".animation-container").hide(); |
||||||
|
$("#auswerten-longer").hide(); |
||||||
|
$("#auswertenv2").hide(); |
||||||
|
$("#auswerten").hide(); |
||||||
|
$("#p_hint_for_press_privacy").hide(); |
||||||
|
$("#settings").hide(); |
||||||
|
$("#settings-back").hide(); |
||||||
|
$("#settings-div").hide(); |
||||||
|
$("#settings-back").hide(); |
||||||
|
|
||||||
|
|
||||||
|
delactiveclasses(); |
||||||
|
if(is_dsgvo){ |
||||||
|
state_privacycheck(is_dsgvo); |
||||||
|
} else { |
||||||
|
state_cookies(); |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function load the cookie part of the popup |
||||||
|
*/ |
||||||
|
function state_cookies(){ |
||||||
|
delactiveclasses(); |
||||||
|
hide_all(); |
||||||
|
hide_all_button(); |
||||||
|
$("#cookie-tab-button").addClass("mdc-tab--active"); |
||||||
|
$("#span-cookie").addClass("mdc-tab-indicator--active"); |
||||||
|
|
||||||
|
|
||||||
|
$("#cookie-cards").show(); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function load the priavy check tab inside the popup window |
||||||
|
* dependig if the user has a privacy statment open, |
||||||
|
* it shows a massege for summarization or random law. |
||||||
|
*/ |
||||||
|
function state_privacycheck(dsgvo){ |
||||||
|
delactiveclasses(); |
||||||
|
hide_all(); |
||||||
|
hide_all_button(); |
||||||
|
if (dsgvo){ |
||||||
|
$("#privacy-tab-button").addClass("mdc-tab--active"); |
||||||
|
$("#privacy-tab-button").attr("aria-selected", "true") |
||||||
|
$("#span-privacy").addClass("mdc-tab-indicator--active"); |
||||||
|
$("#privacy-div").show(); |
||||||
|
$("#privacy-card").show(); |
||||||
|
$("#p_hint_for_press_privacy").show(); |
||||||
|
$("#auswertenv2").addClass("privacyfade"); |
||||||
|
$("#auswertenv2").show(); |
||||||
|
$("#more").hide(); |
||||||
|
|
||||||
|
} else { |
||||||
|
|
||||||
|
$("#privacy-tab-button").addClass("mdc-tab--active"); |
||||||
|
$("#privacy-tab-button").attr("aria-selected", "true") |
||||||
|
$("#span-privacy").addClass("mdc-tab-indicator--active"); |
||||||
|
$("#privacy-div").empty(); |
||||||
|
console.log(get_a_right()); |
||||||
|
$("#privacy-div").append(get_a_right()); |
||||||
|
$("#privacy-div").show(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function creates the more tab inside the popup window |
||||||
|
*/ |
||||||
|
function state_more(){ |
||||||
|
delactiveclasses(); |
||||||
|
hide_all(); |
||||||
|
hide_all_button(); |
||||||
|
$("#about-tab-button").addClass("mdc-tab--active"); |
||||||
|
$("#span-about").addClass("mdc-tab-indicator--active"); |
||||||
|
$("#about-div").show(); |
||||||
|
$("#about-card").show(); |
||||||
|
$("#weiteres").show(); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function defines a settings state_change_switch |
||||||
|
* it is not used but can be used in the future |
||||||
|
*/ |
||||||
|
function state_settings(){ |
||||||
|
$("#about-card").hide(); |
||||||
|
$("#settings").hide(); |
||||||
|
$("#weiteres").hide(); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function defines the states of the switches inside the settings |
||||||
|
* it is not used but can be used in the future |
||||||
|
*/ |
||||||
|
function del_switch_classes(){ |
||||||
|
$("#switch-eng").removeClass("mdc-switch--checked"); |
||||||
|
$("#switch-ger").removeClass("mdc-switch--checked"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function fires if a state of a switch is changed. |
||||||
|
* it is not used but can be used in the future |
||||||
|
*/ |
||||||
|
function state_change_switch(){ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,37 @@ |
|||||||
|
/** |
||||||
|
* These functions are designed to create the summary context |
||||||
|
* */ |
||||||
|
var privacy_icon = "<span class='material-icons'>privacy_tip</span>"; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function create_short_summary_saved(list){ |
||||||
|
let card = "<h1> These data will be saved:<h1/>"; |
||||||
|
console.log(list) |
||||||
|
|
||||||
|
for(let i = 0; i < list.length; i++){ |
||||||
|
card += getpictogramdata(list[i].text); |
||||||
|
} |
||||||
|
return card ; |
||||||
|
} |
||||||
|
|
||||||
|
function create_short_summary_may(list){ |
||||||
|
let card = "<h1>data maybe collected</h1>"; |
||||||
|
for(let i = 0; i < list.length; i++){ |
||||||
|
card += getpictogramdata(list[i].text); |
||||||
|
} |
||||||
|
|
||||||
|
return card; |
||||||
|
} |
||||||
|
|
||||||
|
function create_short_summary_third(list){ |
||||||
|
let card = "<h1>These third parties are associated with this service</h1>"; |
||||||
|
for(let i = 0; i < list.length; i++){ |
||||||
|
card += getpictogramthird(list[i].text); |
||||||
|
} |
||||||
|
return card; |
||||||
|
} |
||||||
|
|
||||||
|
function getIcon(){ |
||||||
|
return privacy_icon; |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
<!doctype html> |
||||||
|
|
||||||
|
<html lang="de"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<title>About Privacy Check</title> |
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> |
||||||
|
<!-- <script src="js/mainmenuscripts.js"></script> --> |
||||||
|
<link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet"> |
||||||
|
<script src="https://unpkg.com/material-components-web@8.0.0/dist/material-components-web.min.js"></script> |
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com"> |
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300&display=swap" rel="stylesheet"> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/style_longer.css"> |
||||||
|
<script src="js/exampledsgvo.js"></script> |
||||||
|
<!-- <script src="js/longer.js"></script> --> |
||||||
|
<script src="js/advanced-view.js"></script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<header class="mdc-top-app-bar--fixed"> |
||||||
|
<div class="mdc-top-app-bar__row"> |
||||||
|
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start"> |
||||||
|
<span class="mdc-top-app-bar__title">Privacy Check!</span> |
||||||
|
</section> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<div class="container"> |
||||||
|
<div class="mdc-card"> |
||||||
|
<!-- <div id="policy-div"></div> --> |
||||||
|
<iframe id="policy" src="http://www.google.de"></iframe> |
||||||
|
</div> |
||||||
|
<div id="faq-div"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,144 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html lang="de"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<title>DGSVO Summery</title> |
||||||
|
|
||||||
|
<!-- Material IO --> |
||||||
|
<link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet"> |
||||||
|
<script src="https://unpkg.com/material-components-web@8.0.0/dist/material-components-web.min.js"></script> |
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com"> |
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300&display=swap" rel="stylesheet"> |
||||||
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> |
||||||
|
|
||||||
|
<!-- JQuery --> |
||||||
|
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> |
||||||
|
|
||||||
|
|
||||||
|
<!-- Relevant style and script for the popup --> |
||||||
|
<script src="js/summary.js"></script> |
||||||
|
<script src="js/states_mainmenu.js"></script> |
||||||
|
<script src="js/auswertenv2.js"></script> |
||||||
|
<script src="js/cookies.js"></script> |
||||||
|
<script src="js/connection.js"></script> |
||||||
|
<script src="js/warnanimation.js"></script> |
||||||
|
<script src="js/pictoen.js"></script> |
||||||
|
<script src="js/picto.js"></script> |
||||||
|
<script src="js/rightoftheday.js"></script> |
||||||
|
<!-- <script src="js/examplesum.js"></script> --> |
||||||
|
<script src="js/mainmenuscripts.js"></script> |
||||||
|
<link rel="stylesheet" type="text/css" href="css/style.css"> |
||||||
|
|
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="extension-div"> |
||||||
|
<header class="mdc-top-app-bar--fixed"> |
||||||
|
<div class="mdc-top-app-bar__row"> |
||||||
|
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start"> |
||||||
|
<span class="mdc-top-app-bar__title">Privacy Check!</span> |
||||||
|
</section> |
||||||
|
|
||||||
|
</div> |
||||||
|
</header> |
||||||
|
|
||||||
|
<div class="mdc-tab-bar"> |
||||||
|
<button class="mdc-tab mdc-tab--active" role="tab" aria-selected="true" id="cookie-tab-button"> |
||||||
|
<span class="mdc-tab__content"> |
||||||
|
<span class="mdc-tab__text-label" id="tab_cookie">Cookies & Ads</span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab-indicator mdc-tab-indicator--active" id="span-cookie"> |
||||||
|
<span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab__ripple"></span> |
||||||
|
</button> |
||||||
|
|
||||||
|
<button class="mdc-tab" role="tab" aria-selected="false" id="privacy-tab-button"> |
||||||
|
<span class="mdc-tab__content"> |
||||||
|
<span class="mdc-tab__text-label" id="tab_dsgvo">GDPR Check</span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab-indicator" id="span-privacy"> |
||||||
|
<span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab__ripple"></span> |
||||||
|
</button> |
||||||
|
|
||||||
|
<button class="mdc-tab" role="tab" aria-selected="false" tabindex="-1" id="about-tab-button"> |
||||||
|
<span class="mdc-tab__content"> |
||||||
|
<span class="mdc-tab__text-label" id="tab_more">More</span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab-indicator" id="span-about"> |
||||||
|
<span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span> |
||||||
|
</span> |
||||||
|
<span class="mdc-tab__ripple"></span> |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="content-area"> |
||||||
|
<div id="privacy-div"> |
||||||
|
<div class="mdc-card" id="p_hint_for_press_privacy"> |
||||||
|
<p>I see here is a privacy policy. If you want, I can look at which data the provider collects or which third party also collect data!</p> |
||||||
|
<img src="../pic_data_base/assist.png" width="64" height="64"> |
||||||
|
</div> |
||||||
|
<div id="privacy-card"> |
||||||
|
<div class="animation-container"> |
||||||
|
<div class="animation"> |
||||||
|
<div class="cycle-1"></div> |
||||||
|
<div class="cycle-2"></div> |
||||||
|
<div class="cycle-3"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="zsf-div"></div> |
||||||
|
|
||||||
|
<div id="cookie-cards"> |
||||||
|
<div class="mdc-card" id="first-cookie-card"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="about-div"> |
||||||
|
<div class="mdc-card" id="about-card"> |
||||||
|
<p> Here can you learn more about your rights, cookies and etc. </p> |
||||||
|
</div> |
||||||
|
<div id="settings-div"> |
||||||
|
<div class="mdc-switch mdc-switch--checked" id="switch-eng"> |
||||||
|
<div class="mdc-switch__track"></div> |
||||||
|
<div class="mdc-switch__thumb-underlay"> |
||||||
|
<div class="mdc-switch__thumb"></div> |
||||||
|
<input type="checkbox" id="basic-switch" class="mdc-switch__native-control" role="switch" aria-checked="false"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<label for="basic-switch">English</label> |
||||||
|
<div class="mdc-switch" id="switch-ger"> |
||||||
|
<div class="mdc-switch__track"></div> |
||||||
|
<div class="mdc-switch__thumb-underlay"> |
||||||
|
<div class="mdc-switch__thumb"></div> |
||||||
|
<input type="checkbox" id="basic-switch" class="mdc-switch__native-control" role="switch" aria-checked="false"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<label for="basic-switch">Deutsch</label> |
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
<div id="button-div"> |
||||||
|
<button class="mdc-button mdc-button--raised" id="auswertenv2"> |
||||||
|
<span class="mdc-button__label">sum up</span> |
||||||
|
</button> |
||||||
|
<button class="mdc-button mdc-button--raised" id="auswerten-longer"> |
||||||
|
<span class="mdc-button__label">Advanced view</span> |
||||||
|
</button> |
||||||
|
<button class="mdc-button mdc-button--raised" id="weiteres"> |
||||||
|
<span class="mdc-button__label">More</span> |
||||||
|
</button> |
||||||
|
<button class="mdc-button mdc-button--raised" id="settings"> |
||||||
|
<span class="mdc-button__label">Settings</span> |
||||||
|
</button> |
||||||
|
<button class="mdc-button mdc-button--raised" id="settings-back"> |
||||||
|
<span class="mdc-button__label">Back</span> |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,32 @@ |
|||||||
|
{ |
||||||
|
"manifest_version": 2, |
||||||
|
"name": "Privacy Check", |
||||||
|
"version": "1.0", |
||||||
|
|
||||||
|
"content_scripts": [ |
||||||
|
{ |
||||||
|
"matches": ["<all_urls>"], |
||||||
|
"css": ["html/css/style_advanced.css"], |
||||||
|
"js": ["jquery.js","thirdpartyextractor.js","email.js","check.js", "pictoen.js","picto.js","summary.js","faq.js", "splitter.js"] |
||||||
|
}], |
||||||
|
"background": { |
||||||
|
"scripts": ["jquery.js","backend.js"] |
||||||
|
}, |
||||||
|
"content_security_policy": "script-src 'self' https://*.jquery.com https://unpkg.com/ https://fonts.googleapis.com/ https://jt-info.de/; object-src 'self'", |
||||||
|
"permissions": [ |
||||||
|
"activeTab", |
||||||
|
"webRequest", |
||||||
|
"cookies", |
||||||
|
"tabs", |
||||||
|
"<all_urls>" |
||||||
|
], |
||||||
|
"browser_action": { |
||||||
|
"default_icon": { |
||||||
|
"40": "luh40x40.png" |
||||||
|
}, |
||||||
|
"default_popup": "html/mainmenu.html", |
||||||
|
"default_title": "DSGVO Auswertung" |
||||||
|
}, |
||||||
|
"web_accessible_resources": ["luh40x40.png", "pic_data_base/*.png"] |
||||||
|
|
||||||
|
} |
After Width: | Height: | Size: 589 B |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3.0 KiB |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 999 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,82 @@ |
|||||||
|
/** |
||||||
|
* This document defines the functions for the summary to get the right pictogram |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* This function search for the right third party picture. |
||||||
|
* It gets a explaination for the icon and the id for the scroll animation. |
||||||
|
* It returns a div with the pictogram and a explaination. |
||||||
|
*/ |
||||||
|
function getpictogramthird(explaination, id){ |
||||||
|
try{ |
||||||
|
let deflt = "thirdparty"; |
||||||
|
let src = "'pic_data_base/"+deflt+".png'";
|
||||||
|
let tmp = explaination.toLowerCase(); |
||||||
|
let potential_keys = tmp.split(" "); |
||||||
|
|
||||||
|
|
||||||
|
for(let i = 0; i < potential_keys.length;i++){ |
||||||
|
if(potential_keys[i] in keys_en){ |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+keys_en[potential_keys[i]]+".png'"); |
||||||
|
|
||||||
|
} else { |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+deflt+".png'");
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//console.log(src);
|
||||||
|
let btn = "<button class='mdc-button "+id+"button'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>Mark in Text</span></button>"; |
||||||
|
|
||||||
|
return "<div class='summary-picto-div'>"+"<image src="+src+ "width='32' height='32' >"+"<p class='summary-explain-p'>"+explaination+"<br>"+btn+"</p>"+"</div>"; |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function search for the right collected data picture. |
||||||
|
* It gets a explaination for the icon and the id for the scroll animation. |
||||||
|
* It returns a div with the pictogram and a explaination. |
||||||
|
*/ |
||||||
|
function getpictogramdata(explaination, id){ |
||||||
|
try{ |
||||||
|
let dflt = "dflt"; |
||||||
|
let src = ""; |
||||||
|
let tmp = explaination.toLowerCase(); |
||||||
|
let potential_keys = tmp.split(" "); |
||||||
|
for(let i = 0; i < potential_keys.length;i++){ |
||||||
|
console.log(potential_keys[i]); |
||||||
|
if(potential_keys[i] in keys_en){ |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+keys_en[potential_keys[i]]+".png'"); |
||||||
|
break; |
||||||
|
} else { |
||||||
|
src = "'"+browser.runtime.getURL("pic_data_base/"+dflt+".png'");
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let btn = "<button class='mdc-button "+id+"button'><span class='mdc-button__ripple'></span><span class='mdc-button__label'>Mark in Text</span></button>"; |
||||||
|
//let btn = "<a href='#"+id+"'>Go to Text</a>";
|
||||||
|
//console.log("class='"+id+"button'");
|
||||||
|
return "<div class='summary-picto-div' >"+"<image src="+src+" width='32' height='32' >"+"<p class='summary-explain-p'>"+explaination+"<br>"+btn+"</p>"+"</div>"; |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function returns a pictogram by a name |
||||||
|
*/ |
||||||
|
function getpic(name){ |
||||||
|
try{ |
||||||
|
src = "'"+ browser.runtime.getURL("pic_data_base/"+name+".png")+"'"; |
||||||
|
//console.log(src);
|
||||||
|
return "<img src="+src+" width='32' height='32'>"; |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
/** |
||||||
|
* The list of pictograms. |
||||||
|
* Every key is a pictogram assigned. |
||||||
|
*/ |
||||||
|
keys_en = { |
||||||
|
"apple": "apple", |
||||||
|
"date": "datum", |
||||||
|
"facebook": "facebook", |
||||||
|
"browser": "firefox", |
||||||
|
"google": "google", |
||||||
|
"instagram": "instagram", |
||||||
|
"ip": "location", |
||||||
|
"address": "location", |
||||||
|
"website": "webpage", |
||||||
|
"webpage": "webpage", |
||||||
|
"websites": "webpage", |
||||||
|
"webpages": "webpage", |
||||||
|
"microsoft": "Microsoft", |
||||||
|
"screensize": "screensize", |
||||||
|
"computer":"screensize", |
||||||
|
"screen": "screensize", |
||||||
|
"thirdparty": "thirdparty", |
||||||
|
"twitter": "twitter", |
||||||
|
"whatsapp": "whatsapp", |
||||||
|
"youtube": "youtube", |
||||||
|
"missing": "missing", |
||||||
|
"email": "email", |
||||||
|
"Email": "email", |
||||||
|
"mac": "apple", |
||||||
|
"linux":"linux", |
||||||
|
"win":"Microsoft" |
||||||
|
|
||||||
|
} |
@ -0,0 +1,363 @@ |
|||||||
|
|
||||||
|
/** |
||||||
|
* This function give feedback is for debugging purpose |
||||||
|
* If the functionthe infalte_adbend_view() is uncommented, the script can infalte the faq without the popup |
||||||
|
**/ |
||||||
|
|
||||||
|
|
||||||
|
$(function() { |
||||||
|
//inflate_advanced_view();
|
||||||
|
}); |
||||||
|
|
||||||
|
var result ="<p>something went wrong</p>"; |
||||||
|
|
||||||
|
// This variable is to infalte a dummy
|
||||||
|
var custom_css_cut = "<style> .dummy{} </style>"; |
||||||
|
|
||||||
|
// This variable is used to create the summary cards in the faq
|
||||||
|
var advanced_new_information = ""; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function inflates the faq inside the open website |
||||||
|
* */ |
||||||
|
function inflate_advanced_view(){ |
||||||
|
try { |
||||||
|
console.log("Try to get Policy"); |
||||||
|
$("head").append(custom_css_cut);
|
||||||
|
$("body").children().wrapAll("<div id='policycontainer'></div>"); |
||||||
|
$("#policycontainer").addClass("cut"); |
||||||
|
$("<div id='faq-policy-div'></div>").insertAfter("#policycontainer"); |
||||||
|
$("#faq-policy-div").append(button_what_are_my_rights); |
||||||
|
$("#faq-policy-div").append(card_what_are_my_right); |
||||||
|
$("#faq-policy-div").append(button_what_is_technicaldata); |
||||||
|
$("#faq-policy-div").append(card_what_is_technicaldata); |
||||||
|
$("#faq-policy-div").append(button_what_are_personal_data); |
||||||
|
$("#faq-policy-div").append(card_what_are_personal_data); |
||||||
|
$("#faq-policy-div").append(button_what_are_anonymised_data); |
||||||
|
$("#faq-policy-div").append(card_what_are_anonymised_data); |
||||||
|
$("#faq-policy-div").append(button_what_techical_data); |
||||||
|
$("#faq-policy-div").append(card_what_techical_data); |
||||||
|
$("#faq-policy-div").append(button_what_third); |
||||||
|
$("#faq-policy-div").append(card_what_third); |
||||||
|
$("#faq-policy-div").append(button_what_are_cookies); |
||||||
|
$("#faq-policy-div").append(card_what_are_cookies); |
||||||
|
$("#faq-policy-div").append(button_what_which_cookies_are_tracking_me); |
||||||
|
$("#faq-policy-div").append(card_what_which_cookies_are_tracking_me); |
||||||
|
$("#faq-policy-div").append(button_what_can_i_do_to_refuse); |
||||||
|
$("#faq-policy-div").append(card_what_can_i_do_to_refuse); |
||||||
|
$("#faq-policy-div").append(button_what_they_know_about_me); |
||||||
|
$("#faq-policy-div").append(card_what_they_know_about_me); |
||||||
|
$("#faq-policy-div").append(button_what_need_help); |
||||||
|
$("#faq-policy-div").append(card_what_need_help); |
||||||
|
|
||||||
|
$("#faq-policy-div").addClass("disable-inheritance"); |
||||||
|
$("#faq-policy-div").addClass("costum-advanced-div"); |
||||||
|
$("body").children().wrapAll("<div id='policy-costum-package'></div>"); |
||||||
|
$("body").prepend("<div class='costum-app-bar'><h1>FAQ - Privacy and cookies</h1></div>"); |
||||||
|
$("#policy-costum-package").addClass("custom-direction-cut"); |
||||||
|
|
||||||
|
$("#faq-policy-div").children().each(function(){ |
||||||
|
console.log($(this)); |
||||||
|
}); |
||||||
|
init_emails(); |
||||||
|
init_cards(); |
||||||
|
init_buttons_cards(); |
||||||
|
init_buttons_close(); |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function inflates the e-mail addresses of a provider into the corresponding Material-Cards |
||||||
|
*/ |
||||||
|
function init_emails(){ |
||||||
|
let tmp = email_address_extraction(); |
||||||
|
for(let i = 0; i < tmp.length; i++){ |
||||||
|
$("#email-refuse").append("<p>"+tmp[i]+"</p>"); |
||||||
|
$("#email-help").append("<p>"+tmp[i]+"</p>"); |
||||||
|
$("#email-knew").append("<p>"+tmp[i]+"</p>"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function deletes blanks outside of a string |
||||||
|
*/ |
||||||
|
function handleblanks(text){ |
||||||
|
text = text.trim(); |
||||||
|
text = text+" "; |
||||||
|
return text; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function deletes \t or \n inside a text |
||||||
|
*/ |
||||||
|
function deleteblanks(text){ |
||||||
|
text = text.trim(); |
||||||
|
text = text.replace("\\n", ""); |
||||||
|
text = text.replace("\\t", ""); |
||||||
|
text = text.replace("\n", ""); |
||||||
|
text = text.replace("\t", ""); |
||||||
|
text = text+""; |
||||||
|
return text; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function filters a privacy policy |
||||||
|
* it returns an array of sections. |
||||||
|
*/ |
||||||
|
function get_policy_and_inflate_id(){ |
||||||
|
try { |
||||||
|
let list = []; |
||||||
|
let tmp_list = []; |
||||||
|
let html = $("body").html(); |
||||||
|
let jq_html = $.parseHTML(html); |
||||||
|
let cl_id = ""; |
||||||
|
$("body *").each(function() { |
||||||
|
|
||||||
|
let tagname = $(this).prop("tagName"); |
||||||
|
if(isUsefull(tagname)){ |
||||||
|
if(isTitle(tagname)){ |
||||||
|
list.push(tmp_list); |
||||||
|
tmp_list = []; |
||||||
|
cl_id = $(this).text().replace(/\s+/g, ''); |
||||||
|
cl_id = cl_id.replace(/\n/g, ''); |
||||||
|
cl_id = cl_id.replace(/\\n/g, ''); |
||||||
|
cl_id = cl_id.replace(/\t/g, ''); |
||||||
|
cl_id = cl_id.replace(/\\t/g, ''); |
||||||
|
cl_id = cl_id.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, ''); |
||||||
|
cl_id = cl_id.replace(/[^a-zA-Z ]/g, ''); |
||||||
|
cl_id = deleteblanks(cl_id); |
||||||
|
cl_id = cl_id.toLowerCase(); |
||||||
|
let tmp = $(this).text(); |
||||||
|
tmp = tmp.replace(/\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\t/g, ' '); |
||||||
|
tmp = tmp.replace(/\\t/g, ' '); |
||||||
|
tmp = tmp.replace(/[&\/\\#+()$~%'":*<>{}]/g, ' '); |
||||||
|
tmp = handleblanks(tmp); |
||||||
|
console.log("id: "+cl_id); |
||||||
|
tmp_list.push({tag: tagname, text: tmp, id:cl_id}); |
||||||
|
|
||||||
|
$(this).addClass(cl_id); |
||||||
|
|
||||||
|
} else { |
||||||
|
if(isList(tagname)){ |
||||||
|
|
||||||
|
$(this).addClass(cl_id); |
||||||
|
$(this).children().each(function(){ |
||||||
|
|
||||||
|
let tmp = $(this).text(); |
||||||
|
tmp = tmp.replace(/\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\t/g, ' '); |
||||||
|
tmp = tmp.replace(/\\t/g, ' '); |
||||||
|
tmp = tmp.replace(/[&\/\\#+()$~%'":*<>{}]/g, ' '); |
||||||
|
tmp = handleblanks(tmp); |
||||||
|
tmp_list.push({tag: "LI", text: tmp, id: cl_id}); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
} else { |
||||||
|
let tmp = $(this).text(); |
||||||
|
tmp = tmp.replace(/\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\\n/g, ' '); |
||||||
|
tmp = tmp.replace(/\t/g, ' '); |
||||||
|
tmp = tmp.replace(/\\t/g, ' '); |
||||||
|
tmp = tmp.replace(/[&\/\\#+()$~%'":*?<>{}]/g, ' '); |
||||||
|
tmp = handleblanks(tmp);
|
||||||
|
tmp_list.push({tag: tagname, text: tmp, id: cl_id}); |
||||||
|
|
||||||
|
$(this).addClass(cl_id); |
||||||
|
//console.log($(this).attr("class"));
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
list.shift(); |
||||||
|
list.shift(); |
||||||
|
console.log("...."); |
||||||
|
console.log(list); |
||||||
|
console.log("...."); |
||||||
|
let back = JSON.stringify(list); |
||||||
|
return back; |
||||||
|
}catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function checks if its usefull in our case |
||||||
|
* */ |
||||||
|
function isUsefull(tagname){ |
||||||
|
switch(tagname.toLowerCase()){ |
||||||
|
case "p": return true;
|
||||||
|
break;
|
||||||
|
case "ul": return true; |
||||||
|
break; |
||||||
|
case "ol": return true; |
||||||
|
break; |
||||||
|
case "dl": return true; |
||||||
|
break; |
||||||
|
case "h1": return true; |
||||||
|
break; |
||||||
|
case "h2": return true; |
||||||
|
break; |
||||||
|
case "h3": return true; |
||||||
|
break; |
||||||
|
case "h4": return true; |
||||||
|
break; |
||||||
|
case "h5": return true; |
||||||
|
break; |
||||||
|
case "h6": return true; |
||||||
|
break; |
||||||
|
default: return false; |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function checks if a html tag is a list |
||||||
|
*/ |
||||||
|
function isList(tagname){ |
||||||
|
switch(tagname.toLowerCase()){
|
||||||
|
case "ul": return true; |
||||||
|
break; |
||||||
|
case "ol": return true; |
||||||
|
break; |
||||||
|
case "dl": return true; |
||||||
|
break; |
||||||
|
default: return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function checks if a html tag is a title |
||||||
|
*/ |
||||||
|
function isTitle(tagname){ |
||||||
|
switch(tagname.toLowerCase()){ |
||||||
|
case "h1": return true; |
||||||
|
break; |
||||||
|
case "h2": return true; |
||||||
|
break; |
||||||
|
case "h3": return true; |
||||||
|
break; |
||||||
|
case "h4": return true; |
||||||
|
break; |
||||||
|
case "h5": return true; |
||||||
|
break; |
||||||
|
case "h6": return true; |
||||||
|
break; |
||||||
|
default: return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function is called if the browser listener fired |
||||||
|
* This function defines the action of this contentscript |
||||||
|
*/ |
||||||
|
function listener(which){ |
||||||
|
try{ |
||||||
|
if(which.func === "get_policy"){
|
||||||
|
get_policy(); |
||||||
|
return Promise.resolve({html: result}); |
||||||
|
} else if(which.func == "get_policy_and_id"){ |
||||||
|
let out = get_policy_and_inflate_id(); |
||||||
|
console.log("leite folgendes weiter:"); |
||||||
|
console.log(out); |
||||||
|
return Promise.resolve({html : out}); |
||||||
|
} else if(which.func == "create_advanced") { |
||||||
|
advanced_new_information = JSON.parse(which.advanced); |
||||||
|
create_faq_context(); |
||||||
|
console.log("Folgendes wird gespeichert:"); |
||||||
|
console.log(advanced_new_information); |
||||||
|
} else if(which.func == "check_if_dsgvo"){ |
||||||
|
console.log("policy: " + checkpolicy()); |
||||||
|
let thirdparties = findThirdpartydomains(); |
||||||
|
console.log(thirdparties); |
||||||
|
return Promise.resolve({is_dsgvo: checkpolicy(), third: JSON.stringify(thirdparties)}); |
||||||
|
} |
||||||
|
} catch (e) { |
||||||
|
console.log(e); |
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** |
||||||
|
* This function creates the faq . |
||||||
|
* In this function is also the scroll function |
||||||
|
*/ |
||||||
|
function create_faq_context(){ |
||||||
|
//debug();
|
||||||
|
try { |
||||||
|
inflate_advanced_view(); |
||||||
|
let list_saved = advanced_new_information[0]; |
||||||
|
let list_third = advanced_new_information[1]; |
||||||
|
let saved_card = create_summary_saved(list_saved); |
||||||
|
let third_card = create_summary_third(list_third); |
||||||
|
console.log(saved_card); |
||||||
|
$("#result-saved-technical").append(saved_card); |
||||||
|
$("#result-saved-third").append(third_card); |
||||||
|
|
||||||
|
for(let i = 0; i < list_saved.length; i++){ |
||||||
|
console.log("hallo von" + list_saved[i].id); |
||||||
|
|
||||||
|
$("body").find("."+list_saved[i].id+"button").click(function(){ |
||||||
|
console.log("clicked: "+"."+list_saved[i].id+"button"); |
||||||
|
|
||||||
|
|
||||||
|
$("body").find(".costum-css-select").each(function(){ |
||||||
|
$(this).removeClass("costum-css-select"); |
||||||
|
}); |
||||||
|
|
||||||
|
|
||||||
|
$("body").find("."+list_saved[i].id).each(function(){ |
||||||
|
$(this).addClass("costum-css-select"); |
||||||
|
}); |
||||||
|
|
||||||
|
let jq_obj = $("body").find("."+list_saved[i].id).first().offset().top; |
||||||
|
let height = $("body").find("."+list_saved[i].id).first().height() / 2; |
||||||
|
console.log(jq_obj); |
||||||
|
$("#policycontainer").stop(); |
||||||
|
$("#policycontainer").animate({ scrollTop: jq_obj + height}, 1000);
|
||||||
|
|
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
for(let i = 0; i < list_third.length; i++){ |
||||||
|
//console.log("hallo von" + list_third[i].id);
|
||||||
|
$("body").find("."+list_third[i].id+"button").click(function(){ |
||||||
|
|
||||||
|
$("body").find(".costum-css-select").each(function(){ |
||||||
|
$(this).removeClass("costum-css-select"); |
||||||
|
}); |
||||||
|
|
||||||
|
$("body").find("."+list_third[i].id).each(function(){ |
||||||
|
$(this).addClass("costum-css-select"); |
||||||
|
console.log("treffer third"); |
||||||
|
}); |
||||||
|
let jq_obj = $("body").find("."+list_third[i].id).first().offset().top; |
||||||
|
let height = $("body").find("."+list_third[i].id).first().height() / 2; |
||||||
|
console.log(jq_obj); |
||||||
|
$("#policycontainer").stop(); |
||||||
|
$("#policycontainer").animate({ scrollTop: jq_obj + height + 100}, 1000);
|
||||||
|
}); |
||||||
|
} |
||||||
|
} catch(e){ |
||||||
|
console.log(e); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
browser.runtime.onMessage.addListener(listener); |
@ -0,0 +1,25 @@ |
|||||||
|
/** |
||||||
|
* These function is designed to create the summary for the collected data |
||||||
|
* */ |
||||||
|
function create_summary_saved(list){ |
||||||
|
let card = ""; |
||||||
|
for(let i = 0; i < list.length; i++){ |
||||||
|
|
||||||
|
card += getpictogramdata("This service saves "+ list[i].text, list[i].id); |
||||||
|
} |
||||||
|
// was ist wenn karte leer ist
|
||||||
|
return card; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* These function is designed to create the summary for the third parties |
||||||
|
* */ |
||||||
|
function create_summary_third(list){ |
||||||
|
let card = ""; |
||||||
|
for(let i = 0; i < list.length; i++){ |
||||||
|
card += getpictogramthird("this side may be send data to: "+list[i].text, list[i].id); |
||||||
|
} |
||||||
|
// was ist wenn karte leer ist
|
||||||
|
return card; |
||||||
|
} |
||||||
|
|