fix tests and change invitation mechanics
This commit is contained in:
@@ -15,10 +15,13 @@ Sitzungen, Rollen owner/member, Codewechsel und Widerruf. Bedienung und Einspiel
|
||||
- Sitzungsgeheimnisse nur als Hash serverseitig und als HttpOnly-/SameSite-Strict-
|
||||
Cookie auf dem Client speichern; bei HTTPS zusätzlich Secure. Nicht ausgeben.
|
||||
- Einladungscodes haben fünf Stellen mit den vorhandenen neun Symbolen.
|
||||
Wiederholungen sind erlaubt; jede Stelle wird unabhängig mit randomInt
|
||||
gewählt. Codes werden dauerhaft nur gehasht gespeichert; der aktuelle Klartext wird für
|
||||
die Besitzeranzeige im Arbeitsspeicher des App-Prozesses gehalten. Gültigkeit 30 Minuten; falsche Versuche
|
||||
sind begrenzt. Variationselektoren ändern die Unicode-Zuordnung nicht.
|
||||
Wiederholungen sind erlaubt. Das Auswahlpopup wird zufällig vorbelegt; erst die
|
||||
Bestätigung speichert den vom Nutzer gewählten Code. Server erzeugt oder
|
||||
ersetzt Codes niemals automatisch. Ungültige bzw. belegte Codes zurückweisen.
|
||||
- Codes dauerhaft in collaboration_invitations speichern; SHA-256-Abdruck und
|
||||
Ablaufzeitpunkt bleiben in collaboration_groups. Klartext nur für Besitzer
|
||||
ausliefern, auch nach Neustart. Gültigkeit 60 Minuten; falsche Versuche begrenzen.
|
||||
Variationselektoren ändern die Unicode-Zuordnung nicht.
|
||||
- Schutz auch auf den ursprünglichen /api/routes/...-Adressen für alle Gruppen-
|
||||
Dateien durchsetzen. Anders geschriebene IDs (führende Nullen, Prozentkodierung,
|
||||
Exponentialschreibweise, Groß-/Kleinschreibung der Pfade) dürfen ihn nicht umgehen.
|
||||
@@ -80,10 +83,12 @@ Sitzungen, Rollen owner/member, Codewechsel und Widerruf. Bedienung und Einspiel
|
||||
entfernter Stationen sowie verteilte Sperren. Eine nachfolgende Aufnahme
|
||||
kann nicht ohne Einschränkungen zurückgerufen werden.
|
||||
|
||||
- Einladungscodes nach 30 Minuten automatisch erneuern, solange keine aktive
|
||||
Stationssperre vorliegt. Abgelaufene Codes erlauben keinen neuen Beitritt, auch
|
||||
wenn ihre Erneuerung wegen aktiver Stationen aufgeschoben ist. Mitgliedschaften
|
||||
bleiben erhalten. Wartung im Serverprozess starten und beim Beenden stoppen.
|
||||
- Einladungscodes laufen nach 60 Minuten ohne Nutzung ab, bleiben unverändert
|
||||
und erlauben dann keinen neuen Beitritt. Erfolgreicher Beitritt, explizites Öffnen
|
||||
zur Bearbeitung, Sperrerwerb, gültige Aktivitätsmeldung und erfolgreiche Speicherung
|
||||
verlängern auf 60 Minuten. Bestehende Mitgliedschaften bleiben erhalten und
|
||||
können durch Bearbeitung denselben Code reaktivieren. Passive Abfragen ändern
|
||||
keine Frist. Wartung bereinigt nur abgelaufene Stationssperren, niemals Codes.
|
||||
- Sperren nach 60 Minuten ohne Aktivität entfernen; updated_at bei tatsächlicher
|
||||
Bearbeitung/Speicherung aktualisieren. Reine Statusabfragen und unbenutzte
|
||||
Fenster dürfen die Frist nicht verlängern. Laufende Schreibanfragen nicht
|
||||
@@ -95,11 +100,11 @@ Sitzungen, Rollen owner/member, Codewechsel und Widerruf. Bedienung und Einspiel
|
||||
|
||||
## Code-Popups
|
||||
|
||||
- Gruppenbutton zeigt unmittelbar den echten fünfstelligen Einladungscode. Keine
|
||||
vorgeschaltete Zwei-Wichtel-Vorschau wieder einführen; sie wurde mit dem Code
|
||||
verwechselt. Eine unvollständige Codeantwort nicht anzeigen.
|
||||
- Codeanzeige und Codeeingabe verwenden getrennte breite native Dialoge. Alle
|
||||
fünf Drehräder nebeneinander anordnen; Wiederholungen weiterhin zulassen.
|
||||
- Scrollschritt in groups.js und Optionshöhe/Innenabstand in editor.css müssen
|
||||
übereinstimmen (96 Pixel). Schließen der Eingabe verwirft verspätete Antworten;
|
||||
die automatische Einladungsaktualisierung darf die Eingabe nicht überdecken.
|
||||
- Gruppenbutton öffnet zuerst fünf zufällig vorbelegte, veränderbare Drehräder.
|
||||
Auswahl vor Übertragung lokaler Strecken bestätigen lassen. Abbrechen überträgt
|
||||
nichts. Danach gespeicherten Code anzeigen; Editor erst nach ausdrücklicher Aktion.
|
||||
- Auswahl, Beitritt und Codeanzeige verwenden breite native Dialoge. Alle fünf
|
||||
Drehräder nebeneinander; Wiederholungen zulassen. Codeänderung nur ausdrücklich.
|
||||
- Scrollschritt in groups.js und Optionshöhe/Innenabstand in editor.css stimmen
|
||||
überein (96 Pixel). Schließen der Eingabe verwirft verspätete Antworten;
|
||||
die passive Einladungsabfrage darf die Eingabe nicht überdecken.
|
||||
|
||||
Reference in New Issue
Block a user