docs(plan): invitation links, invite by email and multi-use codes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
sandrodachandClaude Opus 5.5 committed 2026-10-31 13:19:18 +01:00
1 parent ce66933acc
commit d97f0e6dbf
1 file changed
+21 -4
+21 -4
View File
@@ -51,7 +51,23 @@ Damit die Admin-Einstellungen nicht überladen werden:
```
- `ALLOW_REGISTRATION=true` bleibt als Alias für `REGISTRATION_MODE=open` erhalten.
## 3. Anmelden mit anderen Konten
## 3. Einladungen bequemer
Heute: Der Admin erzeugt einen Code (optional an eine E-Mail-Adresse und Organisation gebunden, Rolle, Gültigkeit 1–365 Tage, **einmal** verwendbar) und gibt ihn weiter; die Person wählt auf der Anmeldeseite „Einladungscode“ und tippt ihn ab.
**Einladungslink**
- Jeder Code ist auch als Link nutzbar: `https://<instanz>/?invite=<CODE>`. Der Link öffnet direkt die Registrierung mit eingetragenem Code; ist er an eine Adresse gebunden, steht die E-Mail schon fest.
- Die App entfernt den Code nach dem Öffnen aus der Adresszeile (wie beim Passwort-Link).
- In der Admin-Liste neben jedem Code: **Link kopieren** und – mit SMTP – **per E-Mail einladen** (Adresse eingeben → E-Mail im MindSift-Layout mit Knopf „Konto anlegen“, wer eingeladen hat, Gültigkeit). Beim Einladen per E-Mail wird der Code automatisch an diese Adresse gebunden.
- Den Link baut die Admin-Oberfläche aus der aktuellen Adresse; nur die E-Mail braucht `BASE_URL`.
**Mehrere Personen mit einem Code**
- Neues Feld **„Wie oft verwendbar“** (Standard 1, z. B. 20) – ein Link für eine ganze Gruppe, Klasse oder Familie. In der Liste steht „3 von 20 verwendet“, Widerrufen beendet ihn sofort.
- Alternativ **„N Einzel-Codes erzeugen“** (z. B. 20 Stück auf einmal) mit Kopieren/Export als Liste, wenn jede Person ihren eigenen Code bekommen soll.
- Mehrfach-Codes können nicht an eine einzelne E-Mail gebunden werden, wohl aber an eine Organisation und an die erlaubten E-Mail-Endungen (Abschnitt 1).
- Technisch: Spalten `max_uses` und `use_count` an `user_invites`; das bestehende „Code reservieren → Konto anlegen → als benutzt markieren“ zählt dann hoch statt abzuschließen (weiter ohne Doppelverwendung bei gleichzeitigen Registrierungen).
## 4. Anmelden mit anderen Konten
### OpenID Connect (statt „nur Google“)
@@ -75,9 +91,10 @@ Eine Anmeldung über den Mailserver (SMTP-Prüfung wie in Gitea) ist bewusst nic
## Reihenfolge und Aufwand (grob)
1. Registrierungsmodus mit Freigabe und Endungen, Umgebungsvariablen, Admin-Liste „Wartet auf Freigabe“, E-Mails – mittel.
2. E-Mail-Bestätigung per Link – klein (Technik wie Passwort vergessen).
3. OIDC-Login – mittel (Bibliothek `coreos/go-oidc` + `golang.org/x/oauth2`, neue Tabelle für verknüpfte Konten, Knopf auf der Anmeldeseite).
1. Einladungslink (Link kopieren, per E-Mail einladen) und Mehrfach-Codes – klein bis mittel, sofort nützlich.
2. Registrierungsmodus mit Freigabe und Endungen, Umgebungsvariablen, Admin-Liste „Wartet auf Freigabe“, E-Mails – mittel.
3. E-Mail-Bestätigung per Link – klein (Technik wie Passwort vergessen).
4. OIDC-Login – mittel (Bibliothek `coreos/go-oidc` + `golang.org/x/oauth2`, neue Tabelle für verknüpfte Konten, Knopf auf der Anmeldeseite).
## Offene Fragen