|
| 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