This module allows you to import MUC membership information from an external URL in JSON format.
If you have an organization or community and lots of members and/or channels, it can be frustrating to manage MUC affiliations manually. This module will fetch a JSON file from a configured URL, and use that to automatically set the MUC affiliations.
It also supports hats/badges.
Add the module to the MUC host (not the global modules_enabled):
Component "conference.example.com" "muc"
modules_enabled = { "muc_members_json" }
You can define (globally or per-MUC component) the following options:
Name | Description |
---|---|
muc_members_json_url | The URL to the JSON file describing memberships |
muc_members_json_mucs | The MUCs to manage, and their associated configuration |
The muc_members_json_mucs
setting determines which rooms
will be managed by the plugin, and how to map roles to hats (if
desired).
= {
muc_members_json_mucs -- This configures hats for the myroom@<this MUC host> MUC
= {
myroom -- The optional field 'member_hat' defines a hat that will be
-- added to any user that is listed in the members JSON
-- (regardless of what roles they have, if any)
= {
member_hat = "urn:uuid:6a1b143a-1c5c-11ee-80aa-4ff1ce4867dc";
id = "Cool Member";
title };
-- The optional field 'team_hats' defines one or more hats
-- that will be assigned to users that have the specified
-- roles in the JSON.
= {
team_hats = {
janitor = "urn:uuid:ec32f550-7d5f-11ee-81ee-6b139cac3bf6";
id = "Janitor";
title }
}
};
}
{
"members": [
{
"jids": [
"user@example.com",
"user2@example.com"
]
},
{
"jids": ["user3@example.com"],
"roles": ["janitor"]
}
]
}
The JSON format must be an object with a members
array.
Each member must have a jids
field, and optionally a
roles
field (both are arrays of strings).
trunk | Works |
0.12 | Works |
With the plugin installer in Prosody 0.12 you can use:
sudo prosodyctl install --server=https://modules.prosody.im/rocks/ mod_muc_members_json
For earlier versions see the documentation for installing 3rd party modules