for method, features in pairs(feature_map) do
if service[method] then
for _, feature in ipairs(features) do
- disco:tag("feature", { var = xmlns_pubsub.."#"..feature }):up();
+ if feature then
+ disco:tag("feature", { var = xmlns_pubsub.."#"..feature }):up();
+ end
end
end
end
end
local function build_disco_info(service)
- disco_info = st.stanza("query", { xmlns = "http://jabber.org/protocol/disco#info" })
+ local disco_info = st.stanza("query", { xmlns = "http://jabber.org/protocol/disco#info" })
:tag("identity", { category = "pubsub", type = "service" }):up()
:tag("feature", { var = "http://jabber.org/protocol/pubsub" }):up();
add_disco_features_from_service(disco_info, service);
+ return disco_info;
end
module:hook("iq-get/host/http://jabber.org/protocol/disco#info:query", function (event)
local admin_aff = module:get_option_string("default_admin_affiliation", "owner");
local function get_affiliation(jid)
- if jid == module.host or usermanager.is_admin(jid, module.host) then
+ local bare_jid = jid_bare(jid);
+ if bare_jid == module.host or usermanager.is_admin(bare_jid, module.host) then
return admin_aff;
end
end