view plugins/mod_server_contact_info.lua @ 14010:ed210f6b1d00 13.0

tests: util.roles: Don't error when loading but not running tests For example, when filtering tests by tag, the file will be executed but the tests won't, leading to 'roles' being nil (the first test loads the library).
author Matthew Wild <mwild1@gmail.com>
date Fri, 12 Dec 2025 11:31:04 +0000
parents c14659710747
children
line wrap: on
line source

-- XEP-0157: Contact Addresses for XMPP Services for Prosody
--
-- Copyright (C) 2011-2018 Kim Alvefur
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--

local array = require "prosody.util.array";
local it = require "prosody.util.iterators";
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 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", {});

local contact_config = module:get_option("contact_info", {
	admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end);
});

local fields = {};

for key, field_var in it.sorted_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);