From 593803edd2efe4b45f201b8d423b5f4af7d4d6d7 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Thu, 30 Jun 2016 19:05:12 +0200 Subject: [feat] add support for private keys into bitmask cli --- src/leap/bitmask/core/dispatcher.py | 22 +++++++++++++++++----- src/leap/bitmask/core/mail_services.py | 12 ++++++------ 2 files changed, 23 insertions(+), 11 deletions(-) (limited to 'src/leap/bitmask/core') diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py index 785c60dc..a50a6b62 100644 --- a/src/leap/bitmask/core/dispatcher.py +++ b/src/leap/bitmask/core/dispatcher.py @@ -153,22 +153,30 @@ class KeysCmd(SubCommand): label = 'keys' - @register_method("[[str, str]]") + @register_method("[dict]") def do_LIST(self, service, *parts, **kw): + private = False + if parts[-1] == 'private': + private = True + bonafide = kw['bonafide'] d = bonafide.do_get_active_user() - d.addCallback(service.do_list_keys) + d.addCallback(service.do_list_keys, private) return d - @register_method('str') + @register_method('dict') def do_EXPORT(self, service, *parts, **kw): if len(parts) < 3: return defer.fail("An email address is needed") address = parts[2] + private = False + if parts[-1] == 'private': + private = True + bonafide = kw['bonafide'] d = bonafide.do_get_active_user() - d.addCallback(service.do_export, address) + d.addCallback(service.do_export, address, private) return d @register_method('str') @@ -177,9 +185,13 @@ class KeysCmd(SubCommand): return defer.fail("An email address is needed") address = parts[2] + private = False + if parts[-1] == 'private': + private = True + bonafide = kw['bonafide'] d = bonafide.do_get_active_user() - d.addCallback(service.do_delete, address) + d.addCallback(service.do_delete, address, private) return d diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py index 8d205d92..37dae344 100644 --- a/src/leap/bitmask/core/mail_services.py +++ b/src/leap/bitmask/core/mail_services.py @@ -346,22 +346,22 @@ class KeymanagerService(HookableService): # commands - def do_list_keys(self, userid): + def do_list_keys(self, userid, private=False): km = self._container.get_instance(userid) - d = km.get_all_keys() + d = km.get_all_keys(private=private) d.addCallback(lambda keys: [dict(key) for key in keys]) return d - def do_export(self, userid, address): + def do_export(self, userid, address, private=False): km = self._container.get_instance(userid) - d = km.get_key(address, fetch_remote=False) + d = km.get_key(address, private=private, fetch_remote=False) d.addCallback(lambda key: dict(key)) return d @defer.inlineCallbacks - def do_delete(self, userid, address): + def do_delete(self, userid, address, private=False): km = self._container.get_instance(userid) - key = yield km.get_key(address, fetch_remote=False) + key = yield km.get_key(address, private=private, fetch_remote=False) km.delete_key(key) defer.returnValue(key.fingerprint) -- cgit v1.2.3