mirror of
https://github.com/projekteuler/projekteuler.git
synced 2025-12-10 08:46:41 +01:00
Merge pull request #98 from projekteuler/privacy-matomo
Add privacy page, include Matomo in production
This commit is contained in:
commit
bebb96c2bd
26
app/assets/javascripts/matomo.js
Normal file
26
app/assets/javascripts/matomo.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
var idSite = 1;
|
||||||
|
var matomoTrackingApiUrl = 'https://matomo.pfischbeck.de/matomo.php';
|
||||||
|
|
||||||
|
var _paq = window._paq || [];
|
||||||
|
_paq.push(['setTrackerUrl', matomoTrackingApiUrl]);
|
||||||
|
_paq.push(['setSiteId', idSite]);
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
_paq.push(['enableLinkTracking']);
|
||||||
|
|
||||||
|
// Send Matomo a new event when navigating to a new page using Turbolinks
|
||||||
|
// (see https://developer.matomo.org/guides/spa-tracking)
|
||||||
|
(function() {
|
||||||
|
var previousPageUrl = null;
|
||||||
|
addEventListener('turbolinks:load', function(event) {
|
||||||
|
if (previousPageUrl) {
|
||||||
|
_paq.push(['setReferrerUrl', previousPageUrl]);
|
||||||
|
_paq.push(['setCustomUrl', window.location.href]);
|
||||||
|
_paq.push(['setDocumentTitle', document.title]);
|
||||||
|
if (event.data && event.data.timing) {
|
||||||
|
_paq.push(['setGenerationTimeMs', event.data.timing.visitEnd - event.data.timing.visitStart]);
|
||||||
|
}
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
}
|
||||||
|
previousPageUrl = window.location.href;
|
||||||
|
});
|
||||||
|
})();
|
||||||
@ -20,7 +20,7 @@
|
|||||||
<p>Sie können zum Problem xxx mit der folgenden URI auf projecteuler.net verlinken:</p>
|
<p>Sie können zum Problem xxx mit der folgenden URI auf projecteuler.net verlinken:</p>
|
||||||
<pre>https://projecteuler.net/problem=xxx</pre>
|
<pre>https://projecteuler.net/problem=xxx</pre>
|
||||||
<p>Ebenso können Sie zu der entsprechenden Übersetzung mit folgender URI verlinken:</p>
|
<p>Ebenso können Sie zu der entsprechenden Übersetzung mit folgender URI verlinken:</p>
|
||||||
<pre>http://projekteuler.de/problems/xxx</pre>
|
<pre>https://projekteuler.de/problems/xxx</pre>
|
||||||
<h2>Kann ich genauere Informationen zum Copyright erhalten?</h2>
|
<h2>Kann ich genauere Informationen zum Copyright erhalten?</h2>
|
||||||
<p>Der Inhalt von projecteuler.net ist lizenziert unter einer Creative Commons Lizenz:<br />
|
<p>Der Inhalt von projecteuler.net ist lizenziert unter einer Creative Commons Lizenz:<br />
|
||||||
Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales.</p>
|
Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales.</p>
|
||||||
|
|||||||
@ -8,6 +8,8 @@
|
|||||||
</p>
|
</p>
|
||||||
<h2>Kontakt:</h2>
|
<h2>Kontakt:</h2>
|
||||||
<p>E-Mail: projekteuler@gmail.com</p>
|
<p>E-Mail: projekteuler@gmail.com</p>
|
||||||
<h2>Haftungsausschluss:</h2>
|
<p><strong>Haftung für Inhalte</strong></p> <p>Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.</p>
|
||||||
<p><strong>Haftung für Inhalte</strong></p> <p>Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.</p> <p><strong>Haftung für Links</strong></p> <p>Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.</p> <p><strong>Urheberrecht</strong></p> <p>Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.</p> <p><strong>Datenschutz</strong></p> <p>Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. </p> <p>Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. </p> <p>Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.</p><p> </p>
|
<p><strong>Haftung für Links</strong></p> <p>Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.</p>
|
||||||
|
<p><strong>Kontaktdaten</strong></p>
|
||||||
|
<p>Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.</p><p> </p>
|
||||||
<p><i>Quellverweis: <a href="http://www.e-recht24.de/muster-disclaimer.htm" target="_blank">eRecht24 Disclaimer</a></i></p>
|
<p><i>Quellverweis: <a href="http://www.e-recht24.de/muster-disclaimer.htm" target="_blank">eRecht24 Disclaimer</a></i></p>
|
||||||
53
app/views/about/privacy.de.html.erb
Normal file
53
app/views/about/privacy.de.html.erb
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<% provide(:title, 'Datenschutz') %>
|
||||||
|
|
||||||
|
<div class="page-header"><h1>Datenschutz</h1></div>
|
||||||
|
|
||||||
|
<p>Diese Datenschutz-Information gilt für die Datenverarbeitung durch:<br /></p>
|
||||||
|
<p>Philipp Fischbeck<br />
|
||||||
|
Großbeerenstraße 48<br />
|
||||||
|
14482 Potsdam<br />
|
||||||
|
E-Mail: projekteuler@gmail.com<br />
|
||||||
|
</p>
|
||||||
|
<p>Die Bestellung eines betrieblichen Datenschutzbeauftragten ist nicht erforderlich.</p>
|
||||||
|
<h2>Erhebung und Verarbeitung personenbezogener Daten</h2>
|
||||||
|
<p><strong>Besuch der Webseite</strong></p>
|
||||||
|
Bei Besuch dieser Webseite werden zwangsweise folgende Daten übertragen:
|
||||||
|
<ul>
|
||||||
|
<li>Aufgerufene URL</li>
|
||||||
|
<li>IP-Adresse des aufrufenden Geräts (mit dem letzten Byte anonymisiert)</li>
|
||||||
|
<li>Datum und Uhrzeit des Aufrufs</li>
|
||||||
|
<li>Webseite, von der aus der Zugriff erfolgt</li>
|
||||||
|
<li>Verwendeter Browser und Betriebssystem</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Die genannten Daten werden durch mich verarbeitet, um einen Verbindungsaufbau zur Webseite zu gewährleisten und die Funktionalität der Webseite zu gewährleisten. Die Rechtsgrundlage für diese Verarbeitung ist Art.6 Abs.1 S.1 lit.f DSGVO. Die Daten werden nicht dazu verwendet, Rückschlüsse auf die Person zu ziehen.</p>
|
||||||
|
|
||||||
|
<p>Die oben beschriebenen Daten werden höchstens 24 Stunden gespeichert und anschließend gelöscht.</p>
|
||||||
|
|
||||||
|
Diese Webseite verwendet Matomo (ehemals Piwik) zur Auswertung von Besucherzugriffen. Matomo verwendet Cookies zur Analyse.
|
||||||
|
Die IP-Adresse wird auch vor der Speicherung anonymisiert. Sämtliche Daten werden auf Servern in Deutschland gespeichert. Sie können hier die Nutzung von Matomo deaktivieren.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
style="border: 0; height: 200px; width: 600px;"
|
||||||
|
src="https://matomo.pfischbeck.de/index.php?module=CoreAdminHome&action=optOut&language=de&backgroundColor=&fontColor=&fontSize=14px&fontFamily=%22Helvetica%20Neue%22%2C%20Helvetica%2C%20Arial%2C%20sans-serif"
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
<p><strong>Anmeldung über GitHub</strong></p>
|
||||||
|
<p>Wenn sich der Besucher über ein GitHub-Konto anmeldet, so wird in einer Datenbank ein Eintrag für diesen Nutzer angelegt. In dem Eintrag wird eine Referenznummer auf das GitHub-Konto, der Anzeigename sowie das Datum des letzten Logins gespeichert. Zusätzlich werden Informationen gespeichert, die dem Besucher ein Fortsetzen der letzten Sitzung ermöglicht.</p>
|
||||||
|
|
||||||
|
<p><strong>Einstellen von Übersetzungen</strong></p>
|
||||||
|
<p>Bei der Einstellung von Übersetzungen wird neben dem Inhalt der Übersetzung auch Datum und Uhrzeit des Absendens gespeichert. Ist der Besucher über GitHub angemeldet, so wird zusätzlich eine Referenz auf den entsprechenden Eintrag des Nutzers in der Datenbank gespeichert.</p>
|
||||||
|
|
||||||
|
<p><strong>Nutzung der Kontaktadresse</strong></p>
|
||||||
|
<p>Besucher haben die Möglichkeit, mich über die angegebene Kontaktadresse zu erreichen. Sämtliche Angaben sind freiwillig. Die Datenverarbeitung für die Kontaktaufnahme erfolgt nach Art.6 Abs.1 S.1 lit.a DSGVO auf Grundlage der freiwilligen Einwilligung des Besuchers.</p>
|
||||||
|
|
||||||
|
<h2>Betroffenenrechte</h2>
|
||||||
|
Sie haben das Recht auf
|
||||||
|
<ul>
|
||||||
|
<li>Auskunft über die bei uns über Sie gespeicherten Daten und ihre Verarbeitung (Art. 15 DSGVO),</li>
|
||||||
|
<li>Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO),</li>
|
||||||
|
<li>Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),</li>
|
||||||
|
<li>Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO),</li>
|
||||||
|
<li>Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 DSGVO) und</li>
|
||||||
|
<li>Datenübertragbarkeit, sofern Sie in die Datenverarbeitung eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben (Art. 20 DSGVO).</li>
|
||||||
|
</ul>
|
||||||
@ -1,5 +1,9 @@
|
|||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p class="text-muted text-center"><%= link_to t('application.copyright'), about_copyright_path %> | <%= t('application.bootstrap_html')%></p>
|
<p class="text-muted text-center">
|
||||||
|
<%= link_to t('application.legal'), about_legal_path %>
|
||||||
|
| <%= link_to t('application.privacy'), about_privacy_path %>
|
||||||
|
| <%= link_to t('application.copyright'), about_copyright_path %>
|
||||||
|
| <%= t('application.bootstrap_html')%></p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
@ -14,7 +14,6 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= nav class: 'navbar-right' do %>
|
<%= nav class: 'navbar-right' do %>
|
||||||
<%= link_to t('application.legal'), about_legal_path %>
|
|
||||||
<% if user_signed_in? %>
|
<% if user_signed_in? %>
|
||||||
<span class="navbar-text">Eingeloggt als <b>
|
<span class="navbar-text">Eingeloggt als <b>
|
||||||
<%= current_user.name %>
|
<%= current_user.name %>
|
||||||
|
|||||||
@ -6,6 +6,10 @@
|
|||||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
||||||
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
||||||
<%= javascript_include_tag 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML-full,Safe', 'data-turbolinks-track' => true %>
|
<%= javascript_include_tag 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML-full,Safe', 'data-turbolinks-track' => true %>
|
||||||
|
<% if Rails.env.production? %>
|
||||||
|
<%=javascript_include_tag 'https://matomo.pfischbeck.de/matomo.js', async: true, defer:true %>
|
||||||
|
<%= javascript_include_tag 'matomo', 'data-turbolinks-track' => true %>
|
||||||
|
<% end %>
|
||||||
<%= csrf_meta_tags %>
|
<%= csrf_meta_tags %>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
0
bin/bundle
Normal file → Executable file
0
bin/bundle
Normal file → Executable file
0
bin/update
Normal file → Executable file
0
bin/update
Normal file → Executable file
@ -11,4 +11,4 @@ Rails.application.config.assets.paths << Rails.root.join('node_modules')
|
|||||||
# Precompile additional assets.
|
# Precompile additional assets.
|
||||||
# application.js, application.css, and all non-JS/CSS in the app/assets
|
# application.js, application.css, and all non-JS/CSS in the app/assets
|
||||||
# folder are already added.
|
# folder are already added.
|
||||||
# Rails.application.config.assets.precompile += %w( admin.js admin.css )
|
Rails.application.config.assets.precompile += %w( matomo.js )
|
||||||
|
|||||||
@ -7,11 +7,12 @@
|
|||||||
Rails.application.config.content_security_policy do |policy|
|
Rails.application.config.content_security_policy do |policy|
|
||||||
policy.default_src :none
|
policy.default_src :none
|
||||||
policy.font_src :self, 'https://cdnjs.cloudflare.com'
|
policy.font_src :self, 'https://cdnjs.cloudflare.com'
|
||||||
policy.img_src :self, 'https://cdnjs.cloudflare.com', 'https://projecteuler.net'
|
policy.img_src :self, 'https://cdnjs.cloudflare.com', 'https://projecteuler.net', 'https://matomo.pfischbeck.de'
|
||||||
policy.object_src :none
|
policy.object_src :none
|
||||||
policy.script_src :self, 'https://cdnjs.cloudflare.com'
|
policy.script_src :self, 'https://cdnjs.cloudflare.com', 'https://matomo.pfischbeck.de'
|
||||||
policy.style_src :self, :unsafe_inline
|
policy.style_src :self, :unsafe_inline
|
||||||
policy.connect_src :self
|
policy.connect_src :self
|
||||||
|
policy.frame_src 'https://matomo.pfischbeck.de'
|
||||||
|
|
||||||
# Specify URI for violation reports
|
# Specify URI for violation reports
|
||||||
# policy.report_uri "/csp-violation-report-endpoint"
|
# policy.report_uri "/csp-violation-report-endpoint"
|
||||||
|
|||||||
@ -9,8 +9,9 @@ de:
|
|||||||
sign_in: 'Einloggen'
|
sign_in: 'Einloggen'
|
||||||
sign_out: 'Ausloggen'
|
sign_out: 'Ausloggen'
|
||||||
info: "Info"
|
info: "Info"
|
||||||
|
privacy: "Datenschutz"
|
||||||
legal: "Impressum"
|
legal: "Impressum"
|
||||||
copyright: "Copyright-Informationen"
|
copyright: "Copyright"
|
||||||
bootstrap_html: 'Entworfen mit <a href="http://getbootstrap.com/">Bootstrap</a>'
|
bootstrap_html: 'Entworfen mit <a href="http://getbootstrap.com/">Bootstrap</a>'
|
||||||
helpers:
|
helpers:
|
||||||
submit:
|
submit:
|
||||||
|
|||||||
@ -11,6 +11,7 @@ Rails.application.routes.draw do
|
|||||||
get 'about/info'
|
get 'about/info'
|
||||||
get 'about/copyright'
|
get 'about/copyright'
|
||||||
get 'about/legal'
|
get 'about/legal'
|
||||||
|
get 'about/privacy'
|
||||||
|
|
||||||
get 'about/roman_numerals'
|
get 'about/roman_numerals'
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user