# D2 — Offene Vereinsentscheidungen **Projekt:** GRENZENLOSE FÖRDERUNG e.V. · **Modus:** READ-ONLY · **Stand:** 2026-11-14, HEAD `d1b719b` Dieses Dokument enthält **ausschließlich** Entscheidungen, die sich **nicht** aus vorhandenen Dokumenten (Satzung §§ 6/9/11–14, Förderrichtlinie, D0-Audit, D1/D1.1, Zusatzprüfung) ableiten lassen. Sie sind hier **nicht** eigenmächtig entschieden worden. Entscheidungsträger jeweils genannt; bis zur Entscheidung gilt der dokumentierte Ist-Stand unverändert. --- ## O1 — Form und Verfahren der Admin-Trennung (technische Administration) - **Frage:** Wie wird die spätere Trennung von technischer Administration und Vereins-/Finanz-/Mitgliedsdaten umgesetzt — eigenes Flag/`tech_admin`-Rolle, befristete Einsichtsfreigaben mit Ablaufdatum, Pflichtbegründung — und wer erteilt sie? - **Belegt:** Auftragsvorgabe §3 (Richtung: Trennung ist vorgesehen; jetziger Admin-Zustand ist temporär); Ist-Befund: Admin erbt derzeit alle `require_*`-Rechte inkl. Freigabe (`roles.py:64-70`), Export ohne Protokoll (`admin.py:273-316`). - **Nicht ableitbar:** konkretes Verfahren, Fristen, Begründungsvorlage, wer autorisiert. - **Entscheidet:** Vorstand (ggf. MV). **Bis dahin:** keine Rechteänderung; die geplante Trennung wird nur als Soll-Architektur geführt. ## O2 — Rollenstatus „Team“ - **Frage:** Soll „Team“ eine produktive Rolle mit eigenem Zugriffsprofil werden, oder bleibt sie ausschließlich öffentliche Team-Seite? - **Belegt:** Rollenmodell kennt nur `mitglied | vorstand | kassenpruefer | admin` (`roles.py:17`); `/team` ist öffentlich (`public.py`). - **Nicht ableitbar:** ob und mit welchen Rechten eine Team-Rolle entstehen soll. - **Entscheidet:** Vorstand. **Bis dahin:** keine neue Rolle (gemäß Auftrag „keine neuen produktiven Rollen erfinden“). ## O3 — Protokoll-Anlage: berechtigte Funktion - **Frage:** Dürfen Protokolle ausschließlich von `funktion=protokoll` angelegt werden oder weiterhin von jedem Vorstand? - **Belegt:** Ist-Zustand: `POST /vorstand/protokolle` erlaubt **jedem** Vorstand (`vorstand.py:224`, `require_vorstand`); Funktion `protokoll` existiert im Modell (`roles.py:16`), aber ohne eigene Prüfung. - **Nicht ableitbar:** satzungsmäßige Zuweisung der Protokollbefugnis. - **Entscheidet:** Vorstand/MV. **Bis dahin:** Ist-Zustand unverändert. ## O4 — Verbuchung von Einnahmen (Beitrag/Spende): einstufig oder Vier-Augen? - **Frage:** Dürfen Einnahmen einstufig `freigegeben` werden, oder ist für sie eine zweite Freigabe vorgeschrieben (analog Auszahlungen)? - **Belegt:** Ist: einstufig (`kasse.py:334,377`, Zusatzprüfung §3.2 „fachlich/satzungsmäßig offen“); Auszahlungen streng 2+1/4-Augen (`kasse.py:275-297`). Satzung regelt die Kassenfreigabe (§12) nicht abschließend für Einnahmen. - **Entscheidet:** MV/Vorstand. **Bis dahin:** bestehende Architektur unverändert (keine Logikänderung). ## O5 — Beitragsstufen „ermäßigt“ und „förder“ - **Frage:** Wie lauten die beschlossenen Beträge für die Stufen „ermäßigt“ und „förder“ (Satzungsdokument §9 zeigt `[€__]`)? - **Belegt:** Satzungsbeleg S.18/§9: 55 € Regel, Stufenwahl ohne Nachweis, Beitragsordnung beschließt die MV (§9 Abs. 2); Settings-Defaults 55/25/120 € sind **Konfiguration, keine beschlossene Satzung** (Zusatzprüfung §3.1/§6). - **Entscheidet:** Mitgliederversammlung. **Bis dahin:** keine automatische Beitragsfortschreibung, keine Zahlungsanforderung (D4 blockiert). ## O6 — Prüfstatus-Modell und Definition von „geprüft“ - **Frage:** Kommt ein Prüfstatus-Feld ins Datenmodell, wer darf es setzen, wie wird „abgeschlossene Kassenprüfung“ definiert (Prüfbericht mit Unterschriften, Perioden)? - **Belegt:** Kein Prüf-Feld existiert (D0 §9, §23.9: fachliche Definition offen); Prüfer-Router bewusst ohne Ergebnisfelder; D1.1 zeigt „Prüferergebnis: offen“. - **Entscheidet:** Prüfungsausschuss/Vorstand. **Bis dahin:** keine erfundenen Prüfwerte (D1.1-Regel bleibt). ## O7 — Globale Berichte für Mitglieder - **Frage:** erhalten Mitglieder jemals einen eigenen (globalen) Berichtsbereich — oder dauerhaft nur persönliche Nachweise? - **Belegt:** D0 §19 (Mitglied: nur eigene Daten, Export nur eigener Datensätze); D1.1: globale Berichte internen Rollen vorbehalten, offene Entscheidung im Prototyp sichtbar markiert; D2-Matrix: keine Mitglieder-Berichtsroute vorhanden. - **Entscheidet:** Vorstand. **Bis dahin:** nur eigene Nachweise. ## O8 — PDF-Zugriff für Mitglieder und Prüfer - **Frage:** In welcher Form erhalten Mitglieder ihre Zuwendungsbestätigung (Download-PDF eigener Bestätigung?) und Prüfer PDF-Nachweise für den Doppelcheck? - **Belegt:** PDF-Route nur `require_kasse` (`kasse.py:459-461`); Mitgliederliste zeigt PDF-Link → bekannter 404 (Zusatzprüfung §2.5); Prüfer sieht Listen ohne PDF (`pruefung.py`); D0 §19: Prüfer = „vollständige Prüfungsunterlagen“ (Umfang nicht konkretisiert). - **Nicht ableitbar:** ob und wie (Download vs. Nur-Anzeige, Rechteumfang) ausgeliefert wird. - **Entscheidet:** Vorstand. **Bis dahin:** Ist (nur Kasse) unverändert. ## O9 — Exportrechte für Externe (Steuerberater/Finanzamt) - **Frage:** Welches Zugriffsmodell erhalten Steuerberater oder Finanzamt (welche Feldumfänge, welcher Weg)? - **Belegt:** D0 §19/§23.7: „Berichtsrechte Externe — Zugriffsmodell ungelöst“; D0 §20: keine Aussage ohne STB-Abstimmung. - **Entscheidet:** Vorstand mit Steuerberater. **Bis dahin:** kein Externenweg. ## O10 — Umsetzungsform der Einsichtsbegrenzung bei Admin-Exporten - **Frage:** Welches Verfahren regelt „autorisiert, begründet, zeitlich begrenzt, protokolliert“ für erweiterte Einsichten (Vorlage, Fristdauer, wer prüft die Begründung)? - **Belegt:** Auftragsvorgabe §3 (Merkmale); Ist: `/admin/export` ohne Begründung/Zeitbegrenzung/Log (`admin.py:273-316`). - **Entscheidet:** Vorstand. **Bis dahin:** Ist unverändert; Umsetzung erst nach Freigabe (D2 Prio 2/5). --- **Status:** alle Punkte ungeklärt — **keine** dieser Entscheidungen wurde in Code, Datenbank, Rollen oder D1/D1.1 umgesetzt. Ergänzend: D2-Matrix `docs/D2-ROLLEN-UND-BERECHTIGUNGSMATRIX.md`. **Integrität:** READ-ONLY · `git diff HEAD = 0` · keine Datenänderung · keine Installation.