From: Andrew Engelbrecht Date: Thu, 23 Jul 2015 16:04:38 +0000 (-0400) Subject: updated the message flattener X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=0402995a1ba4b62533863089f8c7549acdbbbf3b;p=edward.git updated the message flattener it no longer prints nested layers of decrypted text. --- diff --git a/edward b/edward index 091716c..b790a2a 100755 --- a/edward +++ b/edward @@ -369,30 +369,36 @@ def prepare_for_reply_pieces (eddymsg_obj, replyinfo_obj): -def flatten_payloads (eddymsg_obj): +def flatten_decrypted_payloads (eddymsg_obj, get_signed_part): flat_string = "" if eddymsg_obj == None: return "" + # recurse on multi-part mime if eddymsg_obj.multipart == True: for sub in eddymsg_obj.subparts: - flat_string += flatten_payloads (sub) + flat_string += flatten_decrypted_payloads (sub) return flat_string - # todo: don't include nested decrypted messages. for piece in eddymsg_obj.payload_pieces: if piece.piece_type == "text": flat_string += piece.string - elif piece.piece_type == "message": - flat_string += flatten_payloads(piece.plainobj) - elif ((piece.piece_type == "clearsign") \ - or (piece.piece_type == "detachedsig")) \ - and (piece.gpg_data != None): - flat_string += flatten_payloads (piece.gpg_data.plainobj) + if (get_signed_part): + # don't include nested encryption + elif (piece.piece_type == "message") \ + and (piece.gpg_data != None) \ + and (piece.gpg_data.decrypted == False): + flat_string += flatten_decrypted_payloads(piece.gpg_data.plainobj, get_signed_part) + + elif ((piece.piece_type == "clearsign") \ + or (piece.piece_type == "detachedsig")) \ + and (piece.gpg_data != None): + # FIXME: the key used to sign this message needs to be the one that is used for the encrypted reply. + flat_string += flatten_decrypted_payloads (piece.gpg_data.plainobj, get_signed_part) return flat_string