From: AsamK Date: Sun, 2 May 2021 22:03:31 +0000 (+0200) Subject: Add --delete-account argument to completely delete an account X-Git-Tag: v0.8.2~31 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/0091c1cf266de225f84d507bb473ac22582d3b15 Add --delete-account argument to completely delete an account --- diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index e3939480..7f0c48dc 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -406,6 +406,11 @@ public class Manager implements Closeable { // If this is the master device, other users can't send messages to this number anymore. // If this is a linked device, other users can still send messages, but this device doesn't receive them anymore. accountManager.setGcmId(Optional.absent()); + + account.setRegistered(false); + } + + public void deleteAccount() throws IOException { accountManager.deleteAccount(); account.setRegistered(false); diff --git a/man/signal-cli.1.adoc b/man/signal-cli.1.adoc index f6145385..565909a5 100644 --- a/man/signal-cli.1.adoc +++ b/man/signal-cli.1.adoc @@ -92,6 +92,12 @@ If this is the master device, other users can't send messages to this number any Use "updateAccount" to undo this. To remove a linked device, use "removeDevice" from the master device. +*--delete-account*:: +Delete account completely from server. Cannot be undone without loss. You will +have to be readded to each group. + +CAUTION: Only delete your account if you won't use this number again! + === updateAccount Update the account attributes on the signal server. diff --git a/src/main/java/org/asamk/signal/commands/UnregisterCommand.java b/src/main/java/org/asamk/signal/commands/UnregisterCommand.java index 1846eba1..72df842e 100644 --- a/src/main/java/org/asamk/signal/commands/UnregisterCommand.java +++ b/src/main/java/org/asamk/signal/commands/UnregisterCommand.java @@ -1,5 +1,6 @@ package org.asamk.signal.commands; +import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; @@ -14,13 +15,21 @@ public class UnregisterCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { subparser.help("Unregister the current device from the signal server."); + subparser.addArgument("--delete-account") + .help("Delete account completely from server. CAUTION: Only do this if you won't use this number again!") + .action(Arguments.storeTrue()); } @Override public void handleCommand(final Namespace ns, final Manager m) throws CommandException { try { - m.unregister(); + if (ns.getBoolean("delete_account")) { + m.deleteAccount(); + } else { + m.unregister(); + } } catch (IOException e) { + e.printStackTrace(); throw new IOErrorException("Unregister error: " + e.getMessage()); } }