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);