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.
This commit is contained in:
Goffi 2020-03-23 16:53:03 +01:00
commit 8e9905363e
2 changed files with 6 additions and 5 deletions

View file

@ -1183,8 +1183,8 @@ class SatMessageProtocol(xmppim.MessageProtocol):
data["extra"]["delay_sender"] = data["delay_sender"]
except KeyError:
pass
if C.MESS_KEY_ENCRYPTION in data:
data["extra"]["encrypted"] = C.BOOL_TRUE
if self.client.encryption.isEncrypted(data):
data["extra"]["encrypted"] = True
if data is not None:
if self.parent.isMessagePrintable(data):
self.host.bridge.messageNew(

View file

@ -447,6 +447,7 @@ class EncryptionHandler:
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 @@ class EncryptionHandler:
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 @@ class EncryptionHandler:
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):