fix(auth): a reset waits while its owner is held out, and devices show it
The full reading's H1: an owner could be kept from calling a reset off, and the reset then went through. Whoever knew the password and had the mailbox asked an authenticators' reset and kept the codes waiting, so the owner's sign-ins were refused until it took effect; whoever had the mailbox filled the address's proofs ceiling from three networks and completed an account reset. Now every hold-out of the owner after a reset was asked (a wait that begins, an attempt a wait refuses, a sign-in or proof refused by the address's ceiling) moves the account's resets not carried out to take effect no sooner than 72 hours after it ends (pushOutResets). A reset carried out (the password alone signing in until an authenticator is confirmed) is never pushed, nor a lapsed one brought back. Signed-in devices are told too: SignInWays carries when a waiting reset of each kind takes effect, the account section shows them with Call it off, which takes the owner's proof (password and code; password. callOffResets, forwarded by members) and calls every reset off, as no wait holds a signed-in owner's proof back. Texts in English and German. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
4d1cd2045c
commit
9d0d037c86
5 changed files with 1022 additions and 18 deletions
|
|
@ -225,5 +225,11 @@
|
|||
"passwordWarningTitle": "Jemand hat dein Passwort ausprobiert",
|
||||
"passwordWarningBody": "Am {date} hat ein bei deinem Konto angemeldetes Gerät zehnmal hintereinander ein falsches Passwort oder einen falschen Code gesendet und wurde abgemeldet. Warst du das nicht, hat vielleicht jemand anderes dieses Gerät oder seine Sitzung: Ändere dein Passwort.",
|
||||
"passwordWarningDismiss": "Ausblenden",
|
||||
"passwordWarningLater": "Später erinnern"
|
||||
"passwordWarningLater": "Später erinnern",
|
||||
"passwordResetsTitle": "Ein Zurücksetzen steht an",
|
||||
"passwordResetsAuthenticator": "Am {date} werden deine Authenticator-Apps entfernt: Jemand hat es mit deinem Passwort angefordert. Warst du das nicht, sag es ab und ändere dein Passwort.",
|
||||
"passwordResetsAccount": "Am {date} bekommt dein Konto ein neues Passwort und neue Schlüssel, und was mit den alten verschlüsselt ist, geht verloren: Jemand hat es mit einem Code per Mail angefordert. Warst du das nicht, sag es ab.",
|
||||
"passwordResetsCallOff": "Absagen",
|
||||
"passwordCallOffTitle": "Zurücksetzen absagen",
|
||||
"passwordCallOffIntro": "Dein Passwort und ein Code sagen jedes anstehende Zurücksetzen ab."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -479,5 +479,25 @@
|
|||
}
|
||||
},
|
||||
"passwordWarningDismiss": "Dismiss",
|
||||
"passwordWarningLater": "Remind me later"
|
||||
"passwordWarningLater": "Remind me later",
|
||||
"passwordResetsTitle": "A reset is waiting",
|
||||
"passwordResetsAuthenticator": "Your authenticators will be removed on {date}: someone asked with your password. If that wasn't you, call it off and change your password.",
|
||||
"@passwordResetsAuthenticator": {
|
||||
"placeholders": {
|
||||
"date": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"passwordResetsAccount": "Your account will get a new password and new keys on {date}, and what is encrypted under the old ones will be lost: someone asked with a code by mail. If that wasn't you, call it off.",
|
||||
"@passwordResetsAccount": {
|
||||
"placeholders": {
|
||||
"date": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"passwordResetsCallOff": "Call it off",
|
||||
"passwordCallOffTitle": "Call off the reset",
|
||||
"passwordCallOffIntro": "Your password and a code call off every reset waiting."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1458,6 +1458,42 @@ abstract class HalkyonAppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Remind me later'**
|
||||
String get passwordWarningLater;
|
||||
|
||||
/// No description provided for @passwordResetsTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'A reset is waiting'**
|
||||
String get passwordResetsTitle;
|
||||
|
||||
/// No description provided for @passwordResetsAuthenticator.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your authenticators will be removed on {date}: someone asked with your password. If that wasn\'t you, call it off and change your password.'**
|
||||
String passwordResetsAuthenticator(String date);
|
||||
|
||||
/// No description provided for @passwordResetsAccount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your account will get a new password and new keys on {date}, and what is encrypted under the old ones will be lost: someone asked with a code by mail. If that wasn\'t you, call it off.'**
|
||||
String passwordResetsAccount(String date);
|
||||
|
||||
/// No description provided for @passwordResetsCallOff.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Call it off'**
|
||||
String get passwordResetsCallOff;
|
||||
|
||||
/// No description provided for @passwordCallOffTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Call off the reset'**
|
||||
String get passwordCallOffTitle;
|
||||
|
||||
/// No description provided for @passwordCallOffIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Your password and a code call off every reset waiting.'**
|
||||
String get passwordCallOffIntro;
|
||||
}
|
||||
|
||||
class _HalkyonAppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -846,4 +846,27 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|||
|
||||
@override
|
||||
String get passwordWarningLater => 'Später erinnern';
|
||||
|
||||
@override
|
||||
String get passwordResetsTitle => 'Ein Zurücksetzen steht an';
|
||||
|
||||
@override
|
||||
String passwordResetsAuthenticator(String date) {
|
||||
return 'Am $date werden deine Authenticator-Apps entfernt: Jemand hat es mit deinem Passwort angefordert. Warst du das nicht, sag es ab und ändere dein Passwort.';
|
||||
}
|
||||
|
||||
@override
|
||||
String passwordResetsAccount(String date) {
|
||||
return 'Am $date bekommt dein Konto ein neues Passwort und neue Schlüssel, und was mit den alten verschlüsselt ist, geht verloren: Jemand hat es mit einem Code per Mail angefordert. Warst du das nicht, sag es ab.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get passwordResetsCallOff => 'Absagen';
|
||||
|
||||
@override
|
||||
String get passwordCallOffTitle => 'Zurücksetzen absagen';
|
||||
|
||||
@override
|
||||
String get passwordCallOffIntro =>
|
||||
'Dein Passwort und ein Code sagen jedes anstehende Zurücksetzen ab.';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -829,6 +829,29 @@ class HalkyonAppLocalizationsEn extends HalkyonAppLocalizations {
|
|||
|
||||
@override
|
||||
String get passwordWarningLater => 'Remind me later';
|
||||
|
||||
@override
|
||||
String get passwordResetsTitle => 'A reset is waiting';
|
||||
|
||||
@override
|
||||
String passwordResetsAuthenticator(String date) {
|
||||
return 'Your authenticators will be removed on $date: someone asked with your password. If that wasn\'t you, call it off and change your password.';
|
||||
}
|
||||
|
||||
@override
|
||||
String passwordResetsAccount(String date) {
|
||||
return 'Your account will get a new password and new keys on $date, and what is encrypted under the old ones will be lost: someone asked with a code by mail. If that wasn\'t you, call it off.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get passwordResetsCallOff => 'Call it off';
|
||||
|
||||
@override
|
||||
String get passwordCallOffTitle => 'Call off the reset';
|
||||
|
||||
@override
|
||||
String get passwordCallOffIntro =>
|
||||
'Your password and a code call off every reset waiting.';
|
||||
}
|
||||
|
||||
/// The translations for English, as used in the United Kingdom (`en_GB`).
|
||||
|
|
|
|||
Loading…
Reference in a new issue