plugins/mod_server_contact_info.lua
author Kim Alvefur <zash@zash.se>
Mon, 12 Dec 2022 07:07:13 +0100
branch0.12
changeset 12803 3784a8ce0596
parent 11588 8bea29d1f82d
child 12981 74b9e05af71e
permissions -rw-r--r--
Merge 0.11->0.12
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
-- XEP-0157: Contact Addresses for XMPP Services for Prosody
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
--
9337
a86736e0163c mod_server_contact_info: Update copyright header
Kim Alvefur <zash@zash.se>
parents: 9336
diff changeset
     3
-- Copyright (C) 2011-2018 Kim Alvefur
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
--
9337
a86736e0163c mod_server_contact_info: Update copyright header
Kim Alvefur <zash@zash.se>
parents: 9336
diff changeset
     5
-- This project is MIT/X11 licensed. Please see the
a86736e0163c mod_server_contact_info: Update copyright header
Kim Alvefur <zash@zash.se>
parents: 9336
diff changeset
     6
-- COPYING file in the source package for more information.
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
--
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
local array = require "util.array";
11587
4ee7a6a8753e mod_server_contact_info: Apply JID normalization
Kim Alvefur <zash@zash.se>
parents: 11014
diff changeset
    10
local jid = require "util.jid";
11588
8bea29d1f82d mod_server_contact_info: Generate properly escaped URIs from 'admins'
Kim Alvefur <zash@zash.se>
parents: 11587
diff changeset
    11
local url = require "socket.url";
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    13
-- Source: http://xmpp.org/registrar/formtypes.html#http:--jabber.org-network-serverinfo
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    14
local form_layout = require "util.dataforms".new({
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    15
	{ var = "FORM_TYPE"; type = "hidden"; value = "http://jabber.org/network/serverinfo"; };
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    16
	{ name = "abuse", var = "abuse-addresses", type = "list-multi" },
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    17
	{ name = "admin", var = "admin-addresses", type = "list-multi" },
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    18
	{ name = "feedback", var = "feedback-addresses", type = "list-multi" },
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    19
	{ name = "sales", var = "sales-addresses", type = "list-multi" },
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    20
	{ name = "security", var = "security-addresses", type = "list-multi" },
11014
6b27cb706b89 mod_server_contact_info: Add status-addresses field
Kim Alvefur <zash@zash.se>
parents: 9431
diff changeset
    21
	{ name = "status", var = "status-addresses", type = "list-multi" },
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    22
	{ name = "support", var = "support-addresses", type = "list-multi" },
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    23
});
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
9431
8e7feec95e8d mod_server_contact_info: Comment on fallback to using 'admins'
Kim Alvefur <zash@zash.se>
parents: 9337
diff changeset
    25
-- JIDs of configured service admins are used as fallback
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    26
local admins = module:get_option_inherited_set("admins", {});
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    28
local contact_config = module:get_option("contact_info", {
11588
8bea29d1f82d mod_server_contact_info: Generate properly escaped URIs from 'admins'
Kim Alvefur <zash@zash.se>
parents: 11587
diff changeset
    29
	admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end);
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    30
});
8260
c24837f57259 mod_server_contact_info: Import from prosody-modules 2c59f2f0c37d (fixes #778)
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    31
9336
fd704adc62e1 mod_server_contact_info: Simplify
Kim Alvefur <zash@zash.se>
parents: 8260
diff changeset
    32
module:add_extension(form_layout:form(contact_config, "result"));