aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_storage_xep0227.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-03-31 18:53:23 +0200
committerKim Alvefur <zash@zash.se>2022-03-31 18:53:23 +0200
commitfc6f400997a5dbfe4157cfa512263fe201f072c3 (patch)
tree375b02fba7f754d81670636a380556105acdc1b9 /plugins/mod_storage_xep0227.lua
parentf67582a2602fb65109bf5eaf01b4bf1990455844 (diff)
downloadprosody-fc6f400997a5dbfe4157cfa512263fe201f072c3.tar.gz
prosody-fc6f400997a5dbfe4157cfa512263fe201f072c3.zip
mod_storage_xep0227: Support basic listing of PEP nodes in absence of pubsub#admin data
Allows migrating PEP nodes with default settings
Diffstat (limited to 'plugins/mod_storage_xep0227.lua')
-rw-r--r--plugins/mod_storage_xep0227.lua13
1 files changed, 11 insertions, 2 deletions
diff --git a/plugins/mod_storage_xep0227.lua b/plugins/mod_storage_xep0227.lua
index 9c462caa..5b4d3f1a 100644
--- a/plugins/mod_storage_xep0227.lua
+++ b/plugins/mod_storage_xep0227.lua
@@ -279,6 +279,7 @@ handlers.roster = {
};
-- PEP node configuration/etc. (not items)
+local xmlns_pubsub = "http://jabber.org/protocol/pubsub";
local xmlns_pubsub_owner = "http://jabber.org/protocol/pubsub#owner";
local lib_pubsub = module:require "pubsub";
handlers.pep = {
@@ -300,7 +301,16 @@ handlers.pep = {
};
local owner_el = user_el:get_child("pubsub", xmlns_pubsub_owner);
if not owner_el then
- return nil;
+ local pubsub_el = user_el:get_child("pubsub", xmlns_pubsub);
+ if not pubsub_el then
+ return nil;
+ end
+ for node_el in pubsub_el:childtags("items") do
+ nodes[node_el.attr.node] = {
+ node = node_el.attr.node;
+ }
+ end
+ return nodes;
end
for node_el in owner_el:childtags() do
local node_name = node_el.attr.node;
@@ -396,7 +406,6 @@ handlers.pep = {
};
-- PEP items
-local xmlns_pubsub = "http://jabber.org/protocol/pubsub";
handlers.pep_ = {
_stores = function (self, xml) --luacheck: ignore 212/self
local store_names = set.new();