Mercurial > prosody-modules
view mod_e2e_policy/mod_e2e_policy.lua @ 6224:86989059de5b
:multibe Readme.md: correct prosody 0.13 to 13
diff --git a/mod_muc_anonymize_moderation_actions/README.md b/mod_muc_anonymize_moderation_actions/README.md
--- a/mod_muc_anonymize_moderation_actions/README.md
+++ b/mod_muc_anonymize_moderation_actions/README.md
@@ -34,7 +34,7 @@ Component "muc.example.com" "muc"
------ ----------------------
trunk Works as of 25-05-12
- 0.13 Works
+ 13 Works
0.12 Works
------ ----------------------
diff --git a/mod_sasl2/README.md b/mod_sasl2/README.md
--- a/mod_sasl2/README.md
+++ b/mod_sasl2/README.md
@@ -32,6 +32,6 @@ This module requires Prosody **trunk** a
Prosody Version Status
----------------------- ----------------
trunk as of 2025-05-25 Works
- 0.13 Works
+ 13 Works
0.12 Does not work
----------------------- ----------------
diff --git a/mod_sasl2_bind2/README.md b/mod_sasl2_bind2/README.md
--- a/mod_sasl2_bind2/README.md
+++ b/mod_sasl2_bind2/README.md
@@ -17,5 +17,5 @@ This module depends on [mod_sasl2]. It e
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Works
+ 13 Works
0.12 Does not work
diff --git a/mod_sasl2_fast/README.md b/mod_sasl2_fast/README.md
--- a/mod_sasl2_fast/README.md
+++ b/mod_sasl2_fast/README.md
@@ -34,5 +34,5 @@ clients being logged out unexpectedly.
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Work
+ 13 Work
0.12 Does not work
diff --git a/mod_sasl2_sm/README.md b/mod_sasl2_sm/README.md
--- a/mod_sasl2_sm/README.md
+++ b/mod_sasl2_sm/README.md
@@ -18,5 +18,5 @@ configuration options.
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Work
+ 13 Work
0.12 Does not work
diff --git a/mod_sasl_ssdp/README.md b/mod_sasl_ssdp/README.md
--- a/mod_sasl_ssdp/README.md
+++ b/mod_sasl_ssdp/README.md
@@ -21,5 +21,5 @@ There are no configuration options for t
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Works
+ 13 Works
0.12 Does not work
diff --git a/mod_vcard_muc/README.md b/mod_vcard_muc/README.md
--- a/mod_vcard_muc/README.md
+++ b/mod_vcard_muc/README.md
@@ -23,7 +23,7 @@ modules_enabled = {
# Compatibility
------------------------- ----------------------------------------
- 0.13 Room avatar feature included in Prosody
+ 13 Room avatar feature included in Prosody
0.12 Works
------------------------- ----------------------------------------
diff --git a/mod_warn_legacy_tls/README.md b/mod_warn_legacy_tls/README.md
--- a/mod_warn_legacy_tls/README.md
+++ b/mod_warn_legacy_tls/README.md
@@ -44,5 +44,5 @@ legacy_tls_versions = { "TLSv1", "TLSv1.
Prosody-Version Status
--------------- ---------------------
trunk Works as of 25-05-25
-0.13 Works
+13 Works
0.12 Works
| author | Menel <menel@snikket.de> |
|---|---|
| date | Wed, 14 May 2025 23:32:04 +0200 |
| parents | a76c420eca61 |
| children |
line wrap: on
line source
local st = require "util.stanza"; local jid_bare = require "util.jid".bare; local host = module.host; local e2e_policy_chat = module:get_option_string("e2e_policy_chat", "optional"); -- possible values: none, optional and required local e2e_policy_muc = module:get_option_string("e2e_policy_muc", "optional"); -- possible values: none, optional and required local e2e_policy_whitelist = module:get_option_set("e2e_policy_whitelist", { }); -- make this module ignore messages sent to and from this JIDs or MUCs local e2e_policy_message_optional_chat = module:get_option_string("e2e_policy_message_optional_chat", "For security reasons, OMEMO, OTR or PGP encryption is STRONGLY recommended for conversations on this server."); local e2e_policy_message_required_chat = module:get_option_string("e2e_policy_message_required_chat", "For security reasons, OMEMO, OTR or PGP encryption is required for conversations on this server."); local e2e_policy_message_optional_muc = module:get_option_string("e2e_policy_message_optional_muc", "For security reasons, OMEMO, OTR or PGP encryption is STRONGLY recommended for MUC on this server."); local e2e_policy_message_required_muc = module:get_option_string("e2e_policy_message_required_muc", "For security reasons, OMEMO, OTR or PGP encryption is required for MUC on this server."); function warn_on_plaintext_messages(event) -- check if JID is whitelisted if e2e_policy_whitelist:contains(jid_bare(event.stanza.attr.from)) or e2e_policy_whitelist:contains(jid_bare(event.stanza.attr.to)) then return nil; end local body = event.stanza:get_child_text("body"); -- do not warn for status messages if not body or event.stanza.attr.type == "error" then return nil; end -- check otr if body and body:sub(1,4) == "?OTR" then return nil; end -- check omemo https://xmpp.org/extensions/inbox/omemo.html if event.stanza:get_child("encrypted", "eu.siacs.conversations.axolotl") or event.stanza:get_child("encrypted", "urn:xmpp:omemo:0") then return nil; end -- check xep27 pgp https://xmpp.org/extensions/xep-0027.html if event.stanza:get_child("x", "jabber:x:encrypted") then return nil; end -- check xep373 pgp (OX) https://xmpp.org/extensions/xep-0373.html if event.stanza:get_child("openpgp", "urn:xmpp:openpgp:0") then return nil; end -- no valid encryption found if e2e_policy_chat == "optional" and event.stanza.attr.type ~= "groupchat" then event.origin.send(st.message({ from = host, to = event.stanza.attr.from, type = "headline" }, e2e_policy_message_optional_chat)); end if e2e_policy_chat == "required" and event.stanza.attr.type ~= "groupchat" then return event.origin.send(st.error_reply(event.stanza, "modify", "policy-violation", e2e_policy_message_required_chat)); end if e2e_policy_muc == "optional" and event.stanza.attr.type == "groupchat" then event.origin.send(st.message({ from = host, to = event.stanza.attr.from, type = "headline" }, e2e_policy_message_optional_muc)); end if e2e_policy_muc == "required" and event.stanza.attr.type == "groupchat" then return event.origin.send(st.error_reply(event.stanza, "modify", "policy-violation", e2e_policy_message_required_muc)); end end module:hook("pre-message/bare", warn_on_plaintext_messages, 300); module:hook("pre-message/full", warn_on_plaintext_messages, 300); module:hook("pre-message/host", warn_on_plaintext_messages, 300);
