Mercurial > prosody-modules
diff mod_server_contact_info/mod_server_contact_info.lua @ 2317:465b34fdeb60
mod_server_contact_info: Include both global and local admins in fallback mode
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 01 Oct 2016 17:13:57 +0200 |
parents | 4fdcb5c35021 |
children | 3e5828e3f17f |
line wrap: on
line diff
--- a/mod_server_contact_info/mod_server_contact_info.lua Sat Oct 01 01:09:31 2016 +0200 +++ b/mod_server_contact_info/mod_server_contact_info.lua Sat Oct 01 17:13:57 2016 +0200 @@ -1,5 +1,6 @@ -- This plugin implements http://xmpp.org/extensions/xep-0157.html local t_insert = table.insert; +local array = require "util.array"; local df_new = require "util.dataforms".new; -- Source: http://xmpp.org/registrar/formtypes.html#http:--jabber.org-network-serverinfo @@ -14,18 +15,15 @@ local contact_config = module:get_option("contact_info"); if not contact_config then -- we'll use admins from the config as default - contact_config = { admin = {}; }; - local admins = module:get_option("admins"); - if not admins or #admins == 0 then + local admins = module:get_option_inherited_set("admins", {}); + if admins:empty() then module:log("debug", "No contact_info or admins in config"); return -- Nothing to attach, so we'll just skip it. end module:log("debug", "No contact_info in config, using admins as fallback"); - --TODO fetch global admins too? - for i = 1,#admins do - t_insert(contact_config.admin, "xmpp:" .. admins[i]) - module:log("debug", "Added %s to admin-addresses", admins[i]); - end + contact_config = { + admin = array.collect( admins / function(admin) return "xmpp:" .. admin; end); + }; end if not next(contact_config) then module:log("debug", "No contacts, skipping");