Add privacy statement

This commit is contained in:
Daan Sprenkels
2018-10-18 17:05:32 +02:00
parent 16e3161b3f
commit ae7f087cdc
3 changed files with 82 additions and 3 deletions

View File

@ -70,9 +70,9 @@
{% block content %}{% endblock content %}
</div>
<footer>
Issues? Missing a feature? Report them <a href="{{ issues_url }}" target="_blank">here</a>,
submit a merge request <a href="{{ merge_requests_url }}" target="_blank">here</a>
or send an email to <a href="mailto:{{ contact_email }}">{{ contact_email }}</a>.<br>
<a href="{% url 'privacy' %}">Privacy (Dutch)</a> |
<a href="{{ issues_url }}" target="_blank">Issues</a> |
Email: <a href="mailto:{{ contact_email }}">{{ contact_email }}</a>.<br>
</footer>
</body>
</html>

View File

@ -0,0 +1,75 @@
{% extends 'base.html' %}
{% block title %}Privacy{% endblock %}
{% block content %}
<blockquote>
<em title="Google Translate is your friend.">If you want the English version I feel bad for you son. I've got 99 problems and obligatory English ain't one.</em>
</blockquote>
<h1>Privacybelijd<h1>
<h2>1. Introductie</h2>
Dus, ehh. Jah. Dit is zo'n privacystatement. Statement? Beleid? Beleid. Wacht even, wat zegt <a href="https://eur-lex.europa.eu/legal-content/NL/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e2171-1-1">GDPR Art.12</a>? Oh, ze hebben geen naam gekoppeld aan het diertje. Dan ga ik maar voor "privacybeleid".
<h2>2. Verwerking</h2>
Marietje-Zuid wordt beheerd door units van Olympus. Je kunt ze bereiken op <code>marietje@science.ru.nl</code>. Het idee is dus dat je graag wilt kunnen queuen. Daarvoor sla ik in de database deze persoonsgegevens op:
<ul>
<li>Je naam. We willen je kunnen aanspreken op je queue- en uploadgedrag. Daarvoor willen we graag weten wie je bent. Het staat ook mooi op het grote scherm in de kantine.</li>
<li>Je loginnaam op het science domein. In principe kunnen mogen alleen bèta's van het FNWI queuen en je login van het C&CZ is toch al gebaseerd op je echte naam (die hebben we al), dus dit lijkt ons niet onredelijk. We gebruiken deze loginnaam óók als emailadres, door <code>{login}@science.ru.nl</code> te gebruiken als emailadres. De reden dat we dit doen, in plaats van dat je gewoon je persoonlijke emailadres opgeeft, is zodat we gemakkelijk kunnen verifiëren wie je bent als we via email contact hebben.</li>
<li>Een hash (<code>argon2</code>) van een door jou gekozen wachtwoord. Een vriend van mij wijst hier netjes aan dat je natuurlijk je eigen persoonsgegevens in je wachtwoord kunt stoppen, en dat de software die dan verwerkt. Doe dit niet, als je dit doet is dit echt je eigen probleem.</li>
<li>De datum waarop je geregistreerd bent en de datum waarop je als laatst ingelogd bent. Dit is zodat ik kan zien of je account oud/inactief genoeg is dat ik hem zonder fratsen kan verwijderen.</li>
<li>Je queue- en uploadgeschiedenis.</li>
<li>Alle troep die je mee stuurt in je emailcontact met ons.</li>
</ul>
Voor de duidelijkheid, we slaan *niet* op:
<ul>
<li>Je studentnummer.</li>
<li>De naam van je eerste huisdier.</li>
<li>Je tentamencijfers.</li>
<li>De meisjesnaam van je moeder.</li>
</ul>
Van de opgeslagen data zijn alleen je naam, je queue en je uploads publiek. De rest kan alleen door admins bekeken worden.
<h2>3. Consent</h2>
Je kunt natuurlijk goede reden hebben om niet je gegevens door te willen geven. Stel nou dat je achternaam "Vermeend" is, dan wordt je daar natuurlijk (terecht) mee gepest. In zo'n geval lijkt het ons volkomen redelijk om je achternaam in de database te vervangen door ████████. We hebben het getest, dit werkt.
<h2>4. Retentie</h2>
Mensen zijn over het algemeen veel te lam om hun oude accounts op te ruimen bij random services. Echter, een opgeruimde database is een blije database. Dus zo nu en dan (<abbr title="in ieder geval">iig</abbr> één keer per jaar) run ik een scriptje over mijn database heen, die het volgende doet.
Voor alle gebruikers die meer dan een jaar geleden voor het laatst zijn ingelogd:
- Verander de gebruikersnaam in <code>'_deleteduser{i}'</code> | i ∈ {1..}
- Verander de naam in <code>'[deleted]'</code>.
- Nuke het wachtwoordveldje
- Nuke het emailadres
- (De registratie- en laatste logindatum, en je queue- en uploadgeschiedenis blijft bewaard.)
Natuurlijk zou het kunnen dat een aantal getuigen met een goede kennis over je muzieksmaak je queuegeschiedenis kunnen koppelen aan jouw persoon ('looking at you Chick Habit'). Het lijkt me dan ook hartstikke redelijk dat je die data ook genuked wilt hebben. Stuur dan alsjeblieft een email. Er zijn echter een aantal gebruikers die redelijk veel waarde hechten aan hun stats, dus het is net iets te riskant om zomaar alle geschiedenis van gebruikers te verwijderen als ze een jaar niet actief zijn. Dan krijg ik straks allemaal boze studenten op mijn dak. Ik heb uiteindelijk maar de afweging gemaakt om die archiefgegevens te bewaren. Punt is dus dat je gewoon een emailtje kunt sturen en dan verwijder ik ook de rest.
Tenslotte slaan we trouwens maandelijkse backups op van de database. We proberen alle backups in ieder geval binnen een maand of drie weer te verwijderen.
<h2>5. Locatie van dataverwerking</h2>
Zuidkantine.
<h2>6. Delen van gegevens met volk ∉ {admins, gebruikers}</h2>
Je naam is zichtbaar in de web-interface en soms op het scherm in de zuidkantine. Verder delen we geen persoonsgegevens. Dus als Myrthe naar ons toe komt met de vraag: "Weet jij wat de muzieksmaak en emailadres van <code>$unit</code> is? Oh, en wil je hen niet vertellen dat ik dit vroeg?" dan antwoorden we natuurlijk iets in de trant van "Flikker op Myrthe". Maarja, als de Impuls een leuk stukje wil schrijven en eigenlijk alleen geanonimiseerde gegevens wil, óf gegevens die toch al quasi-publiek zijn (zoals de <a href="{% url 'stats:stats' %}">stats</a>-pagina), dan doen we daar eigenlijk nooit echt moeilijk over.
<h2>7. Securiteh</h2>
We zijn niet achterlijk. Wachtwoorden plaintext opslaan is zó 1999 dat we dat niet doen. Onze backups worden versleuteld door middel van state of the art PGP met de public keys van de admins. Op dit moment zijn dat Daan Sprenkels (<a href="https://dsprenkels.com/hello@dsprenkels.com.asc"><code>0x1445C075FFD568CD</code></a>) en Gerdriaan Mulder (<a href="https://keybase.io/mrngm#show-public"><code>0x298CFCE2518BFC29</code></a>). Je zal dus met een €5 verstelbare steeksleutel op ons in moeten hameren om de inhoud van de backups te kunnen lezen.
<h2>8. Klachten</h2>
Als de admins kut zijn kun je gaan klagen bij het Olympusbestuur: <code>olympus@science.ru.nl</code>. Als je ontevreden bent mag je het trouwens ook godverdomme zelf doen. Ik zoek trouwens nog een opvolger! Heb jij interesse?
{% endblock content %}

View File

@ -13,9 +13,12 @@ Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from functools import partial
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from django.shortcuts import render
from metrics.views import metrics
from queues.views import index
from .views import register, activate, forgotpassword, resetpassword
@ -32,6 +35,7 @@ urlpatterns = [
url(r'^resetpassword/(\d+)/(\w+)/$', resetpassword, name='resetpassword'),
url(r'^admin/', admin.site.urls),
url(r'^songs/', include('songs.urls')),
url(r'^privacy/', partial(render, template_name='privacy.html'), name='privacy'),
url(r'^api/', include('api.urls')),
url(r'^playerapi/', include('playerapi.urls')),
url(r'^stats/', include('stats.urls')),