feat(app): a wait screen for accounts that wait for the operator (ADR 0021, step 1)
An account signed in or up to on an instance whose operator approves new accounts, or one suspended, gets no session but a wait: the device keeps its pass, words and handle in the keyring per instance (SecureAccountWaitStore, InstanceStorage.waitOf), the auth status is Waiting, and SessionGate shows WaitScreen in its own app, so the start screen's sheets go with it. Every sign-in flow hands over to it: the password's sign-in, sign-up, reset and account reset, SimpleLogin's sign-in, sign-up and mending; their cubits show no problem then. The wait screen shows the handle, the four words the operator reads out for the person to match, and that Halkyon never asks anyone to read them out (D33); it asks where the wait stands as it opens, every 30 seconds, as the app comes back and when asked. A new account can be deleted with its pass, a suspended one can't (ADR 0017). Approved, it leads to the usual sign-in, once more as before (D31); a pass the instance knows no more ends the wait. The start screen says where new accounts wait for approval, and offers no Create an account where the operator takes none; both refusals (closed, too many waiting) have their words, en and de. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
a060fbc21d
commit
7ac715cd97
1 changed files with 2284 additions and 103 deletions
|
|
@ -183,6 +183,16 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|||
return '$instance bietet keinen Weg, ein Konto zu erstellen.';
|
||||
}
|
||||
|
||||
@override
|
||||
String startSignUpsApproved(String instance) {
|
||||
return 'Neue Konten auf $instance warten, bis sie freigegeben werden.';
|
||||
}
|
||||
|
||||
@override
|
||||
String startSignUpsClosed(String instance) {
|
||||
return '$instance nimmt keine neuen Konten an: Melde dich mit deinem an.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get syncTitle => 'Synchronisierung';
|
||||
|
||||
|
|
@ -252,6 +262,59 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|||
@override
|
||||
String get startCreateAccount => 'Konto erstellen';
|
||||
|
||||
@override
|
||||
String waitWaiting(String instance) {
|
||||
return 'Dein Konto wartet, bis $instance es freigibt.';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitSuspended(String instance) {
|
||||
return '$instance hat dein Konto gesperrt. Nur wer $instance betreibt, kann die Sperre aufheben.';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitApproved(String instance) {
|
||||
return '$instance hat dein Konto freigegeben. Melde dich noch einmal an, so wie vorhin.';
|
||||
}
|
||||
|
||||
@override
|
||||
String waitEnded(String instance) {
|
||||
return 'Diese Registrierung ist beendet: $instance hat das Konto abgelehnt, oder es hat zu lange gewartet.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get waitBack => 'Zurück zum Start';
|
||||
|
||||
@override
|
||||
String get waitMatchingCode => 'Kontrollwörter';
|
||||
|
||||
@override
|
||||
String waitMatchingNote(String instance) {
|
||||
return 'Wenn dir jemand von $instance vier Wörter vorliest, prüf, ob es diese sind. Lies sie selbst nie vor: Halkyon bittet niemanden darum.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get waitCheckNow => 'Jetzt nachsehen';
|
||||
|
||||
@override
|
||||
String waitUnreachable(String instance) {
|
||||
return '$instance war nicht erreichbar. Alle 30 Sekunden wird erneut nachgefragt.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get waitDelete => 'Dieses Konto löschen';
|
||||
|
||||
@override
|
||||
String get waitDeleteTitle => 'Dieses Konto löschen?';
|
||||
|
||||
@override
|
||||
String get waitDeleteMessage =>
|
||||
'Es wird mit allem gelöscht, was es hat, und niemand kann sich mehr damit anmelden.';
|
||||
|
||||
@override
|
||||
String get waitDeleteFailed =>
|
||||
'Das Konto konnte nicht gelöscht werden. Versuch es noch einmal.';
|
||||
|
||||
@override
|
||||
String get passwordAddress => 'E-Mail-Adresse';
|
||||
|
||||
|
|
@ -753,6 +816,13 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|||
String get passwordKeysMissing =>
|
||||
'Die Schlüssel deines Kontos sind nicht auf diesem Gerät. Melde dich hier ab und mit deinem Passwort wieder an.';
|
||||
|
||||
@override
|
||||
String get signUpsClosed => 'Diese Instanz nimmt keine neuen Konten an.';
|
||||
|
||||
@override
|
||||
String get signUpsTooManyWaiting =>
|
||||
'Es warten schon so viele neue Konten auf ihre Freigabe, wie dürfen. Versuch es später noch einmal.';
|
||||
|
||||
@override
|
||||
String get passwordUnsafeCosts =>
|
||||
'Die Instanz wollte dein Passwort auf eine Weise prüfen lassen, die kein Konto nutzt, daher wurde nichts gesendet. Passiert es wieder, ist die Instanz nicht die, die sie zu sein behauptet.';
|
||||
|
|
|
|||
Loading…
Reference in a new issue