diff --git a/sat/plugins/plugin_xep_0420.py b/sat/plugins/plugin_xep_0420.py
index 28fbff52..7902a49b 100644
--- a/sat/plugins/plugin_xep_0420.py
+++ b/sat/plugins/plugin_xep_0420.py
@@ -339,26 +339,26 @@ class XEP_0420: # pylint: disable=invalid-name
if profile.to_policy is not SCEAffixPolicy.NOT_NEEDED:
recipient = stanza.getAttribute("to", None)
- if recipient is None:
+ if recipient is not None:
+ to_element = envelope.addElement((NS_SCE, "to"))
+ to_element["jid"] = jid.JID(recipient).userhost()
+ elif profile.to_policy is SCEAffixPolicy.REQUIRED:
raise ValueError(
" affix requested, but stanza doesn't have the 'to' attribute"
" set."
)
- to_element = envelope.addElement((NS_SCE, "to"))
- to_element["jid"] = jid.JID(recipient).userhost()
-
if profile.from_policy is not SCEAffixPolicy.NOT_NEEDED:
sender = stanza.getAttribute("from", None)
- if sender is None:
+ if sender is not None:
+ from_element = envelope.addElement((NS_SCE, "from"))
+ from_element["jid"] = jid.JID(sender).userhost()
+ elif profile.from_policy is SCEAffixPolicy.REQUIRED:
raise ValueError(
" affix requested, but stanza doesn't have the 'from'"
" attribute set."
)
- from_element = envelope.addElement((NS_SCE, "from"))
- from_element["jid"] = jid.JID(sender).userhost()
-
for affix, policy in profile.custom_policies.items():
if policy is not SCEAffixPolicy.NOT_NEEDED:
envelope.addChild(affix.create(stanza))