Mercurial > prosody-modules
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 |
| 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+ |
