Mercurial > prosody-modules
changeset 6345:8a131d44fc7f
mod_omemo_all_access: Obsolete with mod_pep
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Mon, 27 Oct 2025 12:05:07 +0100 |
| parents | e407d9795b6a |
| children | c400892603ce |
| files | mod_omemo_all_access/README.md mod_omemo_all_access/mod_omemo_all_access.lua |
| diffstat | 2 files changed, 3 insertions(+), 98 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_omemo_all_access/README.md Fri Oct 17 21:18:07 2025 -0400 +++ b/mod_omemo_all_access/README.md Mon Oct 27 12:05:07 2025 +0100 @@ -1,29 +1,8 @@ --- labels: -- 'Stage-Alpha' +- 'Stage-Obsolete' +superseded_by: mod_pep summary: 'Disable access control for all OMEMO related PEP nodes' --- -Introduction -============ - -Traditionally OMEMO encrypted messages could only be exchanged after gaining mutual presence subscription due to the OMEMO key material being stored in PEP. - -XEP-0060 defines a method of changing the access model of a PEP node from `presence` to `open`. However Prosody does not yet support access models on PEP nodes. - -This module disables access control for all OMEMO PEP nodes (=all nodes in the namespace of `eu.siacs.conversations.axolotl.*`), giving everyone access to the OMEMO key material and allowing them to start OMEMO sessions with users on this server. - -Disco feature -============= - -This modules annouces a disco feature on the account to allow external tools such as the [Compliance Tester](https://conversations.im/compliance/) to check if this module has been installed. - - -Compatibility -============= - - ----- ----------------------------------------------------------------------------- - trunk Not needed, mod\_pep provides this feature already - 0.11 Not needed, mod\_pep provides this feature already - 0.10 Works - ----- ----------------------------------------------------------------------------- +Since Prosody 0.11, the features provided by this module are instead provided by [mod\_pep](https://prosody.im/doc/modules/mod_pep).
--- a/mod_omemo_all_access/mod_omemo_all_access.lua Fri Oct 17 21:18:07 2025 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ --- OMEMO all access module --- Copyright (c) 2017 Daniel Gultsch --- --- This module is MIT/X11 licensed --- - -local jid_bare = require "util.jid".bare; -local st = require "util.stanza" -local white_listed_namespace = "eu.siacs.conversations.axolotl." -local disco_feature_namespace = white_listed_namespace .. "whitelisted" - -local mm = require "core.modulemanager"; - - --- COMPAT w/trunk -local pep_module_name = "pep"; -if mm.get_modules_for_host then - if mm.get_modules_for_host(module.host):contains("pep_simple") then - pep_module_name = "pep_simple"; - end -end - -local mod_pep = module:depends(pep_module_name); -local pep_data = mod_pep.module.save().data; - -if not pep_data then - module:log("error", "This module is not compatible with your version of mod_pep"); - if mm.get_modules_for_host then - module:log("error", "Please use mod_pep_simple instead of mod_pep to continue using this module"); - end - return false; -end - -local function on_account_disco_info(event) - (event.reply or event.stanza):tag("feature", {var=disco_feature_namespace}):up(); -end - -local function on_pep_request(event) - local session, stanza = event.origin, event.stanza - local payload = stanza.tags[1]; - if stanza.attr.type == 'get' then - local node, requested_id; - payload = payload.tags[1] - if payload and payload.name == 'items' then - node = payload.attr.node - local item = payload.tags[1]; - if item and item.name == 'item' then - requested_id = item.attr.id; - end - end - if node and string.sub(node,1,string.len(white_listed_namespace)) == white_listed_namespace then - local user = stanza.attr.to and jid_bare(stanza.attr.to) or session.username..'@'..session.host; - local user_data = pep_data[user]; - if user_data and user_data[node] then - local id, item = unpack(user_data[node]); - if not requested_id or id == requested_id then - local reply_stanza = st.reply(stanza) - :tag('pubsub', {xmlns='http://jabber.org/protocol/pubsub'}) - :tag('items', {node=node}) - :add_child(item) - :up() - :up(); - session.send(reply_stanza); - module:log("debug","provided access to omemo node",node) - return true; - end - end - module:log("debug","requested node was white listed", node) - end - end -end - -module:hook("iq/bare/http://jabber.org/protocol/pubsub:pubsub", on_pep_request, 10); -module:hook("account-disco-info", on_account_disco_info);
