From f1b338e5564a8458c906f903ee7e0383dae86287 Mon Sep 17 00:00:00 2001 From: Giovane Date: Fri, 19 Feb 2016 19:17:30 -0200 Subject: Filter keys from attachments #608 w/ @deniscostadsc - Filtering attachments by content type application/pgp-keys --- service/pixelated/adapter/mailstore/leap_mailstore.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'service/pixelated/adapter/mailstore/leap_mailstore.py') diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index 6cbbe10a..72a16dfa 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -29,6 +29,9 @@ from pixelated.support import log_time_deferred from pixelated.support.functional import to_unicode +MIME_PGP_KEY = 'application/pgp-keys' + + class AttachmentInfo(object): def __init__(self, ident, name, encoding=None, ctype='application/octet-stream', size=0): self.ident = ident @@ -322,10 +325,14 @@ class LeapMailStore(MailStore): mbox_uuid = message.get_wrapper().fdoc.mbox_uuid mbox_name = yield self._mailbox_name_from_uuid(mbox_uuid) attachments = self._extract_attachment_info_from(message) + attachments = self._filter_keys(attachments) mail = LeapMail(mail_id, mbox_name, message.get_wrapper().hdoc.headers, set(message.get_tags()), set(message.get_flags()), body=body, attachments=attachments) # TODO assert flags are passed on defer.returnValue(mail) + def _filter_keys(self, attachments): + return filter(lambda attachment: attachment.ctype != MIME_PGP_KEY, attachments) + @defer.inlineCallbacks def _raw_message_body(self, message): content_doc = (yield message.get_wrapper().get_body(self.soledad)) -- cgit v1.2.3