Skip to content

Commit 09eab7e

Browse files
author
Stefan
committed
docs: Add bilingual GDPR/DSGVO compliance guide
- Document Art. 15 (Right of Access) - data export functionality - Document Art. 17 (Right to Erasure) - soft/hard delete options - Document Art. 7 (Consent Management) - consent tracking - Include API reference for all privacy endpoints - Add recommendations for GDPR-compliant operation - Bilingual: German (DSGVO) and English (GDPR)
1 parent d08bed7 commit 09eab7e

1 file changed

Lines changed: 249 additions & 0 deletions

File tree

docs/GDPR_COMPLIANCE.md

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
# DSGVO-Konformitätsleitfaden / GDPR Compliance Guide
2+
3+
**Version**: 0.2.2
4+
**Datum**: Dezember 2025
5+
6+
---
7+
8+
## 🇩🇪 Deutsch
9+
10+
### Übersicht
11+
12+
Die Nextcloud Verein App unterstützt Vereine bei der Einhaltung der Datenschutz-Grundverordnung (DSGVO). Dieses Dokument beschreibt die implementierten Datenschutzfunktionen und gibt Empfehlungen für den DSGVO-konformen Betrieb.
13+
14+
### Implementierte DSGVO-Funktionen
15+
16+
#### 1. Auskunftsrecht (Art. 15 DSGVO)
17+
18+
**Funktion**: Mitglieder können ihre gespeicherten Daten exportieren.
19+
20+
**API-Endpunkt**: `GET /api/v1/privacy/export/{memberId}`
21+
22+
**Exportierte Daten**:
23+
- Persönliche Stammdaten (Name, Adresse, E-Mail)
24+
- Mitgliedschaftsinformationen (Eintrittsdatum, Rolle)
25+
- Gebührenverlauf
26+
- Einwilligungen
27+
28+
**Verwendung im Frontend**:
29+
```
30+
Einstellungen → DSGVO → "Meine Daten exportieren"
31+
```
32+
33+
#### 2. Recht auf Löschung (Art. 17 DSGVO)
34+
35+
**Funktion**: Soft-Delete oder vollständige Löschung von Mitgliedsdaten.
36+
37+
**API-Endpunkt**: `POST /api/v1/privacy/delete/{memberId}`
38+
39+
**Löschmodi**:
40+
- `soft_delete`: Anonymisierung der Daten (empfohlen für Aufbewahrungspflichten)
41+
- `hard_delete`: Vollständige Löschung aller Daten
42+
43+
**Hinweis**: Steuerrechtliche Aufbewahrungspflichten beachten (6-10 Jahre für Finanzdaten).
44+
45+
#### 3. Einwilligungsverwaltung (Art. 7 DSGVO)
46+
47+
**Funktion**: Verwaltung von Einwilligungen für verschiedene Verarbeitungszwecke.
48+
49+
**API-Endpunkte**:
50+
- `GET /api/v1/privacy/consent/{memberId}` - Einwilligungsstatus abrufen
51+
- `POST /api/v1/privacy/consent/{memberId}` - Einwilligung speichern
52+
53+
**Einwilligungsarten**:
54+
- Newsletter
55+
- Veröffentlichung auf Website
56+
- Fotoveröffentlichung
57+
- Weitergabe an Dachverband
58+
59+
#### 4. Datenschutzerklärung (Art. 13/14 DSGVO)
60+
61+
**Funktion**: Zentrale Verwaltung der Datenschutzerklärung.
62+
63+
**API-Endpunkt**: `GET /api/v1/privacy/policy`
64+
65+
**Konfiguration**: Im Admin-Bereich unter Einstellungen.
66+
67+
### Empfehlungen für DSGVO-Konformität
68+
69+
#### Verarbeitungsverzeichnis
70+
71+
Führen Sie ein Verzeichnis aller Verarbeitungstätigkeiten gemäß Art. 30 DSGVO:
72+
73+
| Verarbeitung | Rechtsgrundlage | Speicherdauer |
74+
|--------------|-----------------|---------------|
75+
| Mitgliederverwaltung | Art. 6 (1) b - Vertrag | Dauer der Mitgliedschaft + 3 Jahre |
76+
| Gebührenverwaltung | Art. 6 (1) b - Vertrag | 10 Jahre (steuerrechtlich) |
77+
| Newsletter | Art. 6 (1) a - Einwilligung | Bis Widerruf |
78+
| Statistiken | Art. 6 (1) f - Berechtigtes Interesse | Anonymisiert unbegrenzt |
79+
80+
#### Technische Maßnahmen
81+
82+
1. **Zugriffskontrolle**
83+
- Rollenbasierte Berechtigungen (Admin, Kassierer, Mitglied)
84+
- Jeder Nutzer sieht nur seine eigenen Daten
85+
86+
2. **Protokollierung**
87+
- Alle Zugriffe werden geloggt
88+
- Nachvollziehbarkeit von Änderungen
89+
90+
3. **Verschlüsselung**
91+
- HTTPS für alle Verbindungen
92+
- Nextcloud-Verschlüsselung für gespeicherte Daten
93+
94+
#### Organisatorische Maßnahmen
95+
96+
1. **Datenschutzbeauftragter**: Ab 20 Mitgliedern Prüfung erforderlich
97+
2. **Schulungen**: Regelmäßige Sensibilisierung der Vorstände
98+
3. **Auftragsverarbeitung**: Verträge mit Hosting-Anbietern prüfen
99+
100+
### API-Referenz
101+
102+
```bash
103+
# Datenschutzerklärung abrufen
104+
curl -X GET /api/v1/privacy/policy
105+
106+
# Einwilligungen eines Mitglieds
107+
curl -X GET /api/v1/privacy/consent/{memberId}
108+
109+
# Einwilligung speichern
110+
curl -X POST /api/v1/privacy/consent/{memberId} \
111+
-d '{"type": "newsletter", "given": true}'
112+
113+
# Daten exportieren
114+
curl -X GET /api/v1/privacy/export/{memberId}
115+
116+
# Daten löschen
117+
curl -X POST /api/v1/privacy/delete/{memberId} \
118+
-d '{"mode": "soft_delete"}'
119+
```
120+
121+
---
122+
123+
## 🇬🇧 English
124+
125+
### Overview
126+
127+
The Nextcloud Verein App supports associations in complying with the General Data Protection Regulation (GDPR). This document describes the implemented privacy features and provides recommendations for GDPR-compliant operation.
128+
129+
### Implemented GDPR Functions
130+
131+
#### 1. Right of Access (Art. 15 GDPR)
132+
133+
**Function**: Members can export their stored data.
134+
135+
**API Endpoint**: `GET /api/v1/privacy/export/{memberId}`
136+
137+
**Exported Data**:
138+
- Personal master data (name, address, email)
139+
- Membership information (join date, role)
140+
- Fee history
141+
- Consents
142+
143+
**Frontend Usage**:
144+
```
145+
Settings → GDPR → "Export my data"
146+
```
147+
148+
#### 2. Right to Erasure (Art. 17 GDPR)
149+
150+
**Function**: Soft-delete or complete deletion of member data.
151+
152+
**API Endpoint**: `POST /api/v1/privacy/delete/{memberId}`
153+
154+
**Deletion Modes**:
155+
- `soft_delete`: Data anonymization (recommended for retention requirements)
156+
- `hard_delete`: Complete deletion of all data
157+
158+
**Note**: Consider tax retention requirements (6-10 years for financial data).
159+
160+
#### 3. Consent Management (Art. 7 GDPR)
161+
162+
**Function**: Managing consent for various processing purposes.
163+
164+
**API Endpoints**:
165+
- `GET /api/v1/privacy/consent/{memberId}` - Get consent status
166+
- `POST /api/v1/privacy/consent/{memberId}` - Save consent
167+
168+
**Consent Types**:
169+
- Newsletter
170+
- Website publication
171+
- Photo publication
172+
- Transfer to umbrella organization
173+
174+
#### 4. Privacy Policy (Art. 13/14 GDPR)
175+
176+
**Function**: Central management of the privacy policy.
177+
178+
**API Endpoint**: `GET /api/v1/privacy/policy`
179+
180+
**Configuration**: In admin area under Settings.
181+
182+
### Recommendations for GDPR Compliance
183+
184+
#### Records of Processing Activities
185+
186+
Maintain a record of all processing activities according to Art. 30 GDPR:
187+
188+
| Processing | Legal Basis | Retention Period |
189+
|------------|-------------|------------------|
190+
| Member management | Art. 6 (1) b - Contract | Duration of membership + 3 years |
191+
| Fee management | Art. 6 (1) b - Contract | 10 years (tax law) |
192+
| Newsletter | Art. 6 (1) a - Consent | Until withdrawal |
193+
| Statistics | Art. 6 (1) f - Legitimate interest | Anonymized indefinitely |
194+
195+
#### Technical Measures
196+
197+
1. **Access Control**
198+
- Role-based permissions (Admin, Treasurer, Member)
199+
- Each user only sees their own data
200+
201+
2. **Logging**
202+
- All access is logged
203+
- Traceability of changes
204+
205+
3. **Encryption**
206+
- HTTPS for all connections
207+
- Nextcloud encryption for stored data
208+
209+
#### Organizational Measures
210+
211+
1. **Data Protection Officer**: Review required from 20 members
212+
2. **Training**: Regular awareness training for board members
213+
3. **Data Processing Agreements**: Review contracts with hosting providers
214+
215+
### API Reference
216+
217+
```bash
218+
# Get privacy policy
219+
curl -X GET /api/v1/privacy/policy
220+
221+
# Get member consents
222+
curl -X GET /api/v1/privacy/consent/{memberId}
223+
224+
# Save consent
225+
curl -X POST /api/v1/privacy/consent/{memberId} \
226+
-d '{"type": "newsletter", "given": true}'
227+
228+
# Export data
229+
curl -X GET /api/v1/privacy/export/{memberId}
230+
231+
# Delete data
232+
curl -X POST /api/v1/privacy/delete/{memberId} \
233+
-d '{"mode": "soft_delete"}'
234+
```
235+
236+
---
237+
238+
## Rechtlicher Hinweis / Legal Notice
239+
240+
Dieses Dokument dient nur zur Information und ersetzt keine rechtliche Beratung. Konsultieren Sie bei Fragen zur DSGVO-Konformität einen Datenschutzexperten.
241+
242+
This document is for informational purposes only and does not replace legal advice. Consult a data protection expert for questions about GDPR compliance.
243+
244+
---
245+
246+
**Weitere Informationen / Further Information**:
247+
- [DSGVO Volltext](https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32016R0679)
248+
- [GDPR Full Text](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679)
249+
- [Nextcloud Security](https://nextcloud.com/security/)

0 commit comments

Comments
 (0)