fix: enable users without passwords to delete their accounts by using uia request in account deletion

This commit is contained in:
ggurdin 2025-12-09 12:36:05 -05:00
commit 620ad5d19a
No known key found for this signature in database
GPG key ID: A01CB41737CBB478

View file

@ -74,30 +74,21 @@ class SettingsSecurityController extends State<SettingsSecurity> {
if (mxid == null || mxid.isEmpty || mxid != supposedMxid) { if (mxid == null || mxid.isEmpty || mxid != supposedMxid) {
return; return;
} }
final input = await showTextInputDialog( final resp = await showFutureLoadingDialog(
useRootNavigator: false,
context: context, context: context,
title: L10n.of(context).pleaseEnterYourPassword, delay: false,
okLabel: L10n.of(context).ok, future: () =>
cancelLabel: L10n.of(context).cancel, Matrix.of(context).client.uiaRequestBackground<IdServerUnbindResult?>(
isDestructive: true, (auth) => Matrix.of(context).client.deactivateAccount(auth: auth),
obscureText: true,
hintText: '******',
minLines: 1,
maxLines: 1,
);
if (input == null) return;
await showFutureLoadingDialog(
context: context,
future: () => Matrix.of(context).client.deactivateAccount(
auth: AuthenticationPassword(
password: input,
identifier: AuthenticationUserIdentifier(
user: Matrix.of(context).client.userID!,
), ),
),
),
); );
if (!resp.isError) {
await showFutureLoadingDialog(
context: context,
future: () => Matrix.of(context).client.logout(),
);
}
} }
Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction(context); Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction(context);