mirror of
https://github.com/bjc/prosody.git
synced 2025-04-03 21:27:38 +03:00
mod_server_contact_info: Update to publish fields via new mod_server_info
This commit is contained in:
parent
96898e05a6
commit
fa5346d756
1 changed files with 25 additions and 12 deletions
|
@ -7,21 +7,21 @@
|
|||
--
|
||||
|
||||
local array = require "prosody.util.array";
|
||||
local dataforms = require "prosody.util.dataforms";
|
||||
local jid = require "prosody.util.jid";
|
||||
local url = require "socket.url";
|
||||
|
||||
module:depends("server_info");
|
||||
|
||||
-- Source: http://xmpp.org/registrar/formtypes.html#http:--jabber.org-network-serverinfo
|
||||
local form_layout = dataforms.new({
|
||||
{ var = "FORM_TYPE"; type = "hidden"; value = "http://jabber.org/network/serverinfo" };
|
||||
{ type = "list-multi"; name = "abuse"; var = "abuse-addresses" };
|
||||
{ type = "list-multi"; name = "admin"; var = "admin-addresses" };
|
||||
{ type = "list-multi"; name = "feedback"; var = "feedback-addresses" };
|
||||
{ type = "list-multi"; name = "sales"; var = "sales-addresses" };
|
||||
{ type = "list-multi"; name = "security"; var = "security-addresses" };
|
||||
{ type = "list-multi"; name = "status"; var = "status-addresses" };
|
||||
{ type = "list-multi"; name = "support"; var = "support-addresses" };
|
||||
});
|
||||
local address_types = {
|
||||
abuse = "abuse-addresses";
|
||||
admin = "admin-addresses";
|
||||
feedback = "feedback-addresses";
|
||||
sales = "sales-addresses";
|
||||
security = "security-addresses";
|
||||
status = "status-addresses";
|
||||
support = "support-addresses";
|
||||
};
|
||||
|
||||
-- JIDs of configured service admins are used as fallback
|
||||
local admins = module:get_option_inherited_set("admins", {});
|
||||
|
@ -30,4 +30,17 @@ local contact_config = module:get_option("contact_info", {
|
|||
admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end);
|
||||
});
|
||||
|
||||
module:add_extension(form_layout:form(contact_config, "result"));
|
||||
local fields = {};
|
||||
|
||||
for key, field_var in pairs(address_types) do
|
||||
if contact_config[key] then
|
||||
table.insert(fields, {
|
||||
type = "list-multi";
|
||||
name = key;
|
||||
var = field_var;
|
||||
value = contact_config[key];
|
||||
});
|
||||
end
|
||||
end
|
||||
|
||||
module:add_item("server-info-fields", fields);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue