Mercurial > prosody-modules
annotate mod_muc_block_pm/mod_muc_block_pm.lua @ 6214:cc5c0f1dc89b
mod_muc_anonymize_moderation_actions: Fix mentioning Virtualhost for MUC, Compatibility section and License.
diff --git a/mod_muc_anonymize_moderation_actions/README.md b/mod_muc_anonymize_moderation_actions/README.md
--- a/mod_muc_anonymize_moderation_actions/README.md
+++ b/mod_muc_anonymize_moderation_actions/README.md
@@ -1,8 +1,10 @@
-<!--
-SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
-SPDX-License-Identifier: AGPL-3.0-only
--->
-# mod_muc_anonymize_moderation_actions
+---
+labels:
+- 'Stage-Alpha'
+summary: Anonymize moderator actions for participants
+---
+
+## Introduction
This modules allows to anonymize affiliation and role changes in MUC rooms.
@@ -11,13 +13,10 @@ When the feature is enabled, when a mode
This is particularly usefull to prevent some revenge when a moderator bans someone.
-This module is under AGPL-3.0 license.
-
-It was tested on Prosody 0.12.x.
## Configuration
-Just enable the module on your MUC VirtualHost.
+Just enable the module on your MUC Component.
The feature will be accessible throught the room configuration form.
You can tweak the position of the settings in the MUC configuration form using `anonymize_moderation_actions_form_position`.
@@ -26,7 +25,20 @@ This value will be passed as priority fo
By default, the field will be between muc#roomconfig_changesubject and muc#roomconfig_moderatedroom (default value is `78`).
``` lua
-VirtualHost "muc.example.com"
+Component "muc.example.com" "muc"
modules_enabled = { "muc_anonymize_moderation_actions" }
anonymize_moderation_actions_form_position = 96
```
+
+## Compatibility
+
+ ------ ----------------------
+ trunk Works as of 25-05-12
+ 0.13 Works
+ 0.12 Works
+ ------ ----------------------
+
+### License
+
+SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
+SPDX-License-Identifier: AGPL-3.0-only
| author | Menel <menel@snikket.de> |
|---|---|
| date | Mon, 12 May 2025 10:42:26 +0200 |
| parents | 67f7df9892bb |
| children |
| rev | line source |
|---|---|
|
5591
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
1 local st = require "util.stanza"; |
|
2588
69d3e0037435
mod_muc_block_pm: Prevent unaffiliated users from sending private messages in MUC
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
5610
67f7df9892bb
mod_muc_block_pm: Advertise that Moderators are allowed to send PMs
Kim Alvefur <zash@zash.se>
parents:
5609
diff
changeset
|
3 module:hook("muc-disco#info", function(event) |
|
67f7df9892bb
mod_muc_block_pm: Advertise that Moderators are allowed to send PMs
Kim Alvefur <zash@zash.se>
parents:
5609
diff
changeset
|
4 table.insert(event.form, { name = "muc#roomconfig_allowpm"; value = "moderators" }); |
|
67f7df9892bb
mod_muc_block_pm: Advertise that Moderators are allowed to send PMs
Kim Alvefur <zash@zash.se>
parents:
5609
diff
changeset
|
5 end); |
|
67f7df9892bb
mod_muc_block_pm: Advertise that Moderators are allowed to send PMs
Kim Alvefur <zash@zash.se>
parents:
5609
diff
changeset
|
6 |
|
5591
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
7 module:hook("muc-private-message", function(event) |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
8 local stanza, room = event.stanza, event.room; |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
9 local from_occupant = room:get_occupant_by_nick(stanza.attr.from); |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
10 |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
11 if from_occupant and from_occupant.role == "moderator" then |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
12 return -- moderators may message anyone |
|
3636
afedc2430b0d
mod_muc_block_pm: Add support for Prosody 0.11
JC Brand <jc@opkode.com>
parents:
2588
diff
changeset
|
13 end |
|
2588
69d3e0037435
mod_muc_block_pm: Prevent unaffiliated users from sending private messages in MUC
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
|
5591
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
15 local to_occupant = room:get_occupant_by_nick(stanza.attr.to) |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
16 if to_occupant and to_occupant.role == "moderator" then |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
17 return -- messaging moderators is ok |
|
4027
291a45919988
mod_muc_block_pm: Don't respond to error stanzas
JC Brand <jc@opkode.com>
parents:
3636
diff
changeset
|
18 end |
|
2588
69d3e0037435
mod_muc_block_pm: Prevent unaffiliated users from sending private messages in MUC
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 |
|
5609
e469642e6a6c
mod_muc_block_pm: Allow private messages to yourself
Kim Alvefur <zash@zash.se>
parents:
5591
diff
changeset
|
20 if to_occupant.bare_jid == from_occupant.bare_jid then |
|
e469642e6a6c
mod_muc_block_pm: Allow private messages to yourself
Kim Alvefur <zash@zash.se>
parents:
5591
diff
changeset
|
21 return -- to yourself is okay, used by some clients to sync read state in public channels |
|
e469642e6a6c
mod_muc_block_pm: Allow private messages to yourself
Kim Alvefur <zash@zash.se>
parents:
5591
diff
changeset
|
22 end |
|
e469642e6a6c
mod_muc_block_pm: Allow private messages to yourself
Kim Alvefur <zash@zash.se>
parents:
5591
diff
changeset
|
23 |
|
5591
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
24 room:route_to_occupant(from_occupant, st.error_reply(stanza, "cancel", "policy-violation", "Private messages are disabled", room.jid)) |
|
c7e532ac6bf7
mod_muc_block_pm: Update to 0.12+ API, use roles instead of affiliations
Kim Alvefur <zash@zash.se>
parents:
4027
diff
changeset
|
25 return false; |
|
2588
69d3e0037435
mod_muc_block_pm: Prevent unaffiliated users from sending private messages in MUC
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 end, 1); |
