annotate mod_muc_auto_role/README.md @ 6562:5da6fb562df9 default tip

mod_unified_push: Fix push error handling (fixes #2000) Use the error object that send_iq() passes as an argument to it's reject callback instead of attempting and failing to do the parsing in the callback itself.
author kmq
date Mon, 06 Jul 2026 14:23:57 +0200
parents c41615686ce4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6422
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 ---
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 labels:
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 - 'Stage-Alpha'
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 summary: 'Set default role for MUC occupants based on policies'
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 ...
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 Introduction
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 ============
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 This module allows you to apply policies to occupants joining a MUC room, and
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 choose an appropriate initial role for them.
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 Details
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 =======
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 Depending on configuration, someone who joins a MUC will usually be assigned
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 one of two roles: "visitor", or "participant".
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 The "visitor" role does not have permission to speak in moderated rooms. The
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 "participant" role may speak in moderated rooms.
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 By default, Prosody assigns "participant" when a MUC is not moderated, and
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 "visitor" when it is moderated. This allows existing occupants to continue
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 speaking when a MUC is switched from unmoderated to moderated (e.g. in
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 response to abuse).
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 This module overrides the default behaviour, using other signals such as
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 [XEP-0489: Reporting Account Affiliations](https://xmpp.org/extensions/xep-0489.html),
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 (which is implemented in Prosody in [mod_report_affiliations](https://modules.prosody.im/mod_report_affiliations))
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 to decide which role to assign by default.
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 This allows a smarter approach than simply assigning everyone "visitor" or
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 "participant".
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 Configuration
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 =============
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 Add the module to the MUC host (not the global modules\_enabled):
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 Component "conference.example.com" "muc"
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 modules_enabled = { "muc_auto_role" }
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 You can define (globally or per-MUC component) the following options:
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 Name Default Description
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 ------------------------------- ----------- ----------------------------------------------------
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 muc_auto_role_trusted_servers `{}` A list of trusted servers to use RAA info from
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 muc_auto_role_trust_threshold `51` The minimum RAA trust score which will be considered trusted (for `"participant"` role)
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 muc_auto_role_untrusted_servers `{}` A list of servers which will always use the `"visitor"` role.
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 muc_default_role `"visitor"` The default role to assign when no other policy fits
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 Compatibility
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 =============
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54
c41615686ce4 mod_muc_auto_role: Set default role for MUC occupants based on policies
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 Requires Prosody 13.0+