From 97c49d75f8505cb73a19f845f0d23898aeb0e689 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Wed, 2 Mar 2022 16:49:47 +0100 Subject: [PATCH] Revoke all wipers method --- .../api/remotewipe/RemoteWipeManager.java | 2 ++ .../remotewipe/RemoteWipeManagerImpl.java | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/briar-api/src/main/java/org/briarproject/briar/api/remotewipe/RemoteWipeManager.java b/briar-api/src/main/java/org/briarproject/briar/api/remotewipe/RemoteWipeManager.java index 57c086ca5..fb60a2846 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/remotewipe/RemoteWipeManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/remotewipe/RemoteWipeManager.java @@ -53,6 +53,8 @@ public interface RemoteWipeManager extends ConversationManager.ConversationClien void revoke(Transaction txn, ContactId contactId) throws DbException, FormatException; + void revokeAll(Transaction txn) throws DbException, FormatException; + boolean remoteWipeIsSetup(Transaction txn); List getWipers(Transaction txn) throws DbException; diff --git a/briar-core/src/main/java/org/briarproject/briar/remotewipe/RemoteWipeManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/remotewipe/RemoteWipeManagerImpl.java index 20744b065..f6eb11eba 100644 --- a/briar-core/src/main/java/org/briarproject/briar/remotewipe/RemoteWipeManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/remotewipe/RemoteWipeManagerImpl.java @@ -400,9 +400,7 @@ public class RemoteWipeManagerImpl extends ConversationClientImpl BdfDictionary meta = clientHelper.getGroupMetadataAsDictionary(txn, localGroup.getId()); return meta.getBoolean(GROUP_KEY_AM_WIPER, false); - } catch (DbException e) { - return false; - } catch (FormatException e) { + } catch (DbException | FormatException e) { return false; } } @@ -434,6 +432,21 @@ public class RemoteWipeManagerImpl extends ConversationClientImpl } } + public void revokeAll(Transaction txn) throws DbException, FormatException { + List currentWipers = getWiperContactIds(txn); + for (ContactId c : currentWipers) { + sendRevokeMessage(txn, db.getContact(txn, c)); + } + + BdfList noWipers = new BdfList(); + BdfDictionary meta = new BdfDictionary(); + meta.put(GROUP_KEY_WIPERS, noWipers); + + if (!db.containsGroup(txn, localGroup.getId())) + db.addGroup(txn, localGroup); + clientHelper.mergeGroupMetadata(txn, localGroup.getId(), meta); + } + @Override public Group getContactGroup(Contact c) { return contactGroupFactory.createContactGroup(CLIENT_ID,