diff sat/memory/encryption.py @ 3228:cc3fea71c365

core (memory/encryption): set encrypted flag also for outgoing messages and put it in extra: - `encrypted` flag is now put directly in extra, so that there is nothing to change when sending the message to bridge for frontends to be aware of it. - this flag is now also set when markAsEncrypted is used, so frontend can display appropriate indicator to show that outgoing message is encrypted or not.
author Goffi <goffi@goffi.org>
date Mon, 23 Mar 2020 16:53:03 +0100
parents 2f406b762788
children e756e0eb1be4
line wrap: on
line diff
--- a/sat/memory/encryption.py	Sun Mar 22 18:47:59 2020 +0100
+++ b/sat/memory/encryption.py	Mon Mar 23 16:53:03 2020 +0100
@@ -447,6 +447,7 @@
                 f"encryption flag must not be set for groupchat if encryption algorithm "
                 f"({encryption['plugin'].name}) is directed!")
             mess_data[C.MESS_KEY_ENCRYPTION] = encryption
+            self.markAsEncrypted(mess_data)
 
     ## Misc ##
 
@@ -457,7 +458,7 @@
         the plugin
         @param mess_data(dict): message data as used in post treat workflow
         """
-        mess_data[C.MESS_KEY_ENCRYPTED] = True
+        mess_data['extra'][C.MESS_KEY_ENCRYPTED] = True
         return mess_data
 
     def isEncryptionRequested(self, mess_data, namespace=None):
@@ -478,12 +479,12 @@
         return plugin.namespace == namespace
 
     def isEncrypted(self, mess_data):
-        """Helper method to check if an incoming message has the e2e encrypted flag
+        """Helper method to check if a message has the e2e encrypted flag
 
         @param mess_data(dict): message data
         @return (bool): True if the encrypted flag is present
         """
-        return mess_data.get(C.MESS_KEY_ENCRYPTED, False)
+        return mess_data['extra'].get(C.MESS_KEY_ENCRYPTED, False)
 
 
     def markAsTrusted(self, mess_data):