Zum Hauptinhalt springen

Uni-Verein 1.11.0 – Rechtliche Hinweise und Einbettung des Anmeldeformulars 📜🌐

· 4 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 12. November 2026

Uni-Verein 1.11.0 macht die Selbstregistrierung vereinstauglicher: Admins hinterlegen einen rechtlichen Hinweis, z. B. einen Datenschutztext, dem Interessierte per Checkbox zustimmen müssen. Außerdem lässt sich das Anmeldeformular mit wenigen Zeilen Code in die eigene Website einbetten. Die Webseiteneinstellungen sind dafür in zwei Tabs aufgeteilt. Beim Update gibt es einen Punkt zu beachten, siehe die Hinweise unten.

Highlights​

  • 📜 Rechtliche Hinweise (UV-74): Ein formatierter Text im öffentlichen Formular, dem die Person vor dem Absenden zustimmen muss
  • 🌐 Einbetten (UV-74): Das Formular lässt sich per <script>-Schnipsel in andere Websites einbauen, nur auf Domains, die du erlaubst
  • 🗂️ Zwei Tabs (UV-74): Die Webseiteneinstellungen trennen "Verein" (Name, Logo) und "Selbstregistrierung"

Neue Funktionen​

  • 📜 Rechtliche Hinweise (UV-74): Admins schreiben unter "Webseiteneinstellungen" → "Selbstregistrierung" → "Rechtliche Hinweise" einen formatierten Text. Er erscheint im öffentlichen Formular /enroll über dem Speichern-Button, zusammen mit einer Checkbox, die die Person anklicken muss. Solange ein Text gesetzt ist, antwortet POST /self-enrollment ohne legalAccepted: true mit 400, der Zeitpunkt der Zustimmung wird in PendingSelfEnrollments.legal_accepted_at gespeichert. Der Text wird beim Speichern und beim Ausliefern bereinigt. Admin-API: GET/PUT /enroll-form-settings. Details: Rechtliche Hinweise
  • 🌐 Formular einbetten (UV-74): Mit <div id="uv-enroll"></div> und <script src="https://<host>/embed.js" data-target="#uv-enroll" async></script> erscheint das Formular in einem iframe (/embed/enroll) auf der eigenen Website, dessen Höhe dem Inhalt folgt. Optional sind data-theme="light|dark|auto" (Standard light) und data-max-width (Standard 720 px, none für volle Breite). Eingebettet werden darf nur auf den Domains unter "Erlaubte Domains" (als CSP frame-ancestors gesetzt), ein Platzhalter braucht mindestens zwei Namensteile (https://*.example.org). GET /self-enrollment/embed-policy hat ein eigenes Rate-Limit (RateLimiting__SelfEnrollment__EmbedPolicyPermitLimit, Standard 300 pro 15 Minuten und IP). Details: Formular einbetten

Änderungen​

  • 🗂️ Webseiteneinstellungen mit zwei Tabs (UV-74): Der Tab "Verein" enthält Vereinsname, Logo, Speichern und Zurücksetzen, der Tab "Selbstregistrierung" den Schalter und, solange er aktiv ist, den öffentlichen Link, den Rechtstext und das Einbetten. Jeder Tab speichert nur seinen Teil, der Schalter braucht einen gespeicherten Vereinsnamen. Siehe Webseiteneinstellungen
  • 🔀 Schalter "Selbstregistrierung" umgezogen (UV-74): Er liegt jetzt in der neuen Tabelle enroll_form_settings (mit eindeutigem Index auf tenant_id), die Migration übernimmt die bisherigen Werte. PUT /enroll-form-settings speichert Schalter, Rechtstext und erlaubte Domains in einer Anfrage und setzt beim Einschalten die öffentliche Basis-URL (dafür braucht es Mail-Einstellungen und einen gespeicherten Vereinsnamen, sonst 422). PUT /web-page-config nimmt nur noch pageName und logo, GET /web-page-config liefert kein selfEnrollmentEnabled mehr, und das Zurücksetzen der Webseiteneinstellungen schaltet die Selbstregistrierung weiterhin aus. GET /self-enrollment/form-data antwortet mit enabled, /enroll hängt damit nicht mehr an der allgemeinen Seitenkonfiguration, und GET /pending-self-enrollments liefert selfEnrollmentEnabled für die Mitgliederseite
  • ✏️ Mail-Editor aufgeteilt (UV-74): Werkzeugleiste und Editor-Setup liegen jetzt in components/richText/ und werden gemeinsam genutzt, das Verhalten bleibt unverändert

⚠️ Hinweise zum Update​

  • Immer mit docker-compose-update.yml aktualisieren, wie in der README beschrieben
  • nginx.conf mit aktualisieren: Sie hat zwei neue Locations (/_embed_policy und /embed/enroll, mit auth_request) und muss zusammen mit dem Backend ersetzt werden. Das erledigt das Update-Skript. Wer eigene Proxy-Regeln pflegt, muss dieselben zwei Locations ergänzen, sonst funktioniert das Einbetten nicht
  • API-Clients: selfEnrollmentEnabled wird nicht mehr über /web-page-config gelesen oder gesetzt, sondern über /enroll-form-settings
  • Einbetten ist standardmäßig gesperrt, bis du unter "Erlaubte Domains" mindestens eine Domain einträgst

Warum diese Updates wichtig sind​

Wer neue Mitglieder online aufnimmt, muss ihnen vorher sagen, was mit ihren Daten passiert. Mit dem Rechtstext und der Zustimmung per Checkbox ist das im Formular selbst erledigt und nachweisbar. Und weil sich das Formular direkt in die Vereinswebsite einbetten lässt, müssen Interessierte nicht mehr auf eine fremde Adresse wechseln, was die Hürde zum Beitritt senkt.

Wie geht es weiter?​

Weiteres Feedback aus der Praxis ist wie immer herzlich willkommen, gerne über GitHub Issues. Schaut auch weiterhin gerne hier vorbei!