feat: Logout-Warnung bei fehlendem Key-Backup (M1)

Beide Logout-Bestätigungsdialoge prüfen jetzt vorab per neuem
isKeyBackupMissing(client) (bootstrap_dialog.dart), ob Cross-Signing/
Key-Backup eingerichtet ist. Fehlt es, zeigt der Dialog eine
Klartext-Warnung: alte verschlüsselte Nachrichten wären nach dem
Logout auf keinem Gerät mehr lesbar. Ohne fehlendes Backup bleibt der
bisherige Text unverändert.
This commit is contained in:
Bernd Steckmeister
2026-07-03 09:59:10 +02:00
parent e8ab626c92
commit b5762ea08d
3 changed files with 40 additions and 6 deletions
+9
View File
@@ -3,6 +3,15 @@ import 'package:matrix/encryption.dart';
import 'package:matrix/matrix.dart';
import 'package:pyramid/core/theme.dart';
/// Ob Cross-Signing/Key-Backup fehlt oder nicht entsperrt ist — wenn ja, würde
/// ein Logout den Zugriff auf ältere verschlüsselte Nachrichten kosten.
Future<bool> isKeyBackupMissing(Client client) async {
final enc = client.encryption;
if (enc == null) return true;
if (!enc.crossSigning.enabled) return true;
return !(await enc.keyManager.isCached().catchError((_) => false));
}
Future<void> showBootstrapDialog(
BuildContext context,
Client client, {