summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2017-03-01 01:13:21 +0100
committerRuben Pollan <meskio@sindominio.net>2017-03-03 00:47:22 +0100
commit4003aaaa124b1ffa77d07f7e2ae5d16e2dddacf1 (patch)
tree295e72d97ff8a24048fa647420233128a47c4bb8 /src
parent4a5e181138e4ccd324d33426f3903825c178af48 (diff)
[feat] mail status will only work for a valid userid
We used to return the system status if no userid is provided. We don't do it anymore, now is only userid based. - Resolves: #8785
Diffstat (limited to 'src')
-rw-r--r--src/leap/bitmask/cli/mail.py5
-rw-r--r--src/leap/bitmask/core/dispatcher.py6
-rw-r--r--src/leap/bitmask/core/mail_services.py10
3 files changed, 10 insertions, 11 deletions
diff --git a/src/leap/bitmask/cli/mail.py b/src/leap/bitmask/cli/mail.py
index 025804eb..fd44383b 100644
--- a/src/leap/bitmask/cli/mail.py
+++ b/src/leap/bitmask/cli/mail.py
@@ -50,15 +50,12 @@ SUBCOMMANDS:
help='uid to check the status of')
subargs = parser.parse_args(raw_args)
- self.data.append('status')
-
uid = None
if subargs.uid:
uid = subargs.uid
else:
uid = self.cfg.get('bonafide', 'active', default=None)
- if uid:
- self.data.append(uid)
+ self.data += ['status', uid]
return self._send(self._print_status)
diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py
index f0c4e766..3e50b11f 100644
--- a/src/leap/bitmask/core/dispatcher.py
+++ b/src/leap/bitmask/core/dispatcher.py
@@ -252,9 +252,11 @@ class MailCmd(SubCommand):
@register_method('dict')
def do_STATUS(self, mail, *parts, **kw):
- userid = None
- if len(parts) > 2:
+ try:
userid = parts[2]
+ except IndexError:
+ raise DispatchError(
+ 'wrong number of arguments: expected 1, got none')
d = mail.do_status(userid)
return d
diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py
index 4e67ac45..92712019 100644
--- a/src/leap/bitmask/core/mail_services.py
+++ b/src/leap/bitmask/core/mail_services.py
@@ -571,16 +571,16 @@ class StandardMailService(service.MultiService, HookableService):
# commands
@defer.inlineCallbacks
- def do_status(self, userid=None):
+ def do_status(self, userid):
smtp = self.getServiceNamed('smtp')
imap = self.getServiceNamed('imap')
+ incoming = self.getServiceNamed('incoming_mail')
+ incoming_status = yield incoming.status(userid)
childrenStatus = {
'smtp': smtp.status(),
- 'imap': imap.status()
+ 'imap': imap.status(),
+ 'incoming': incoming_status
}
- if userid is not None:
- incoming = self.getServiceNamed('incoming_mail')
- childrenStatus['incoming'] = yield incoming.status(userid)
def key(service):
status = childrenStatus[service]