diff --git a/Doku/plans/registrierung-und-login.md b/Doku/plans/registrierung-und-login.md index d0c70f3..cd723c9 100644 --- a/Doku/plans/registrierung-und-login.md +++ b/Doku/plans/registrierung-und-login.md @@ -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:///?invite=`. 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