diff options
author | Kim Alvefur <zash@zash.se> | 2022-03-31 18:53:23 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2022-03-31 18:53:23 +0200 |
commit | fc6f400997a5dbfe4157cfa512263fe201f072c3 (patch) | |
tree | 375b02fba7f754d81670636a380556105acdc1b9 /plugins | |
parent | f67582a2602fb65109bf5eaf01b4bf1990455844 (diff) | |
download | prosody-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')
-rw-r--r-- | plugins/mod_storage_xep0227.lua | 13 |
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(); |