annotate mod_listusers/mod_listusers.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 b307b72ae527
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1055
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
1 function module.command(args)
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
2 local action = table.remove(args, 1);
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
3 if not action then -- Default, list registered users
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
4 local data_path = CFG_DATADIR or "data";
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
5 if not pcall(require, "luarocks.loader") then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
6 pcall(require, "luarocks.require");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
7 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
8 local lfs = require "lfs";
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
9 function decode(s)
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
10 return s:gsub("%%([a-fA-F0-9][a-fA-F0-9])", function (c)
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
11 return string.char(tonumber("0x"..c));
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
12 end);
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
13 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
14 for host in lfs.dir(data_path) do
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
15 local accounts = data_path.."/"..host.."/accounts";
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
16 if lfs.attributes(accounts, "mode") == "directory" then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
17 for user in lfs.dir(accounts) do
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
18 if user:sub(1,1) ~= "." then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
19 print(decode(user:gsub("%.dat$", "")).."@"..decode(host));
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
20 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
21 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
22 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
23 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
24 elseif action == "--connected" then -- List connected users
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
25 local socket = require "socket";
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
26 local default_local_interfaces = { };
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
27 if socket.tcp6 and config.get("*", "use_ipv6") ~= false then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
28 table.insert(default_local_interfaces, "::1");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
29 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
30 if config.get("*", "use_ipv4") ~= false then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
31 table.insert(default_local_interfaces, "127.0.0.1");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
32 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
33
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
34 local console_interfaces = config.get("*", "console_interfaces")
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
35 or config.get("*", "local_interfaces")
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
36 or default_local_interfaces
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
37 console_interfaces = type(console_interfaces)~="table"
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
38 and {console_interfaces} or console_interfaces;
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
39
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
40 local console_ports = config.get("*", "console_ports") or 5582
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
41 console_ports = type(console_ports) ~= "table" and { console_ports } or console_ports;
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
42
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
43 local st, conn = pcall(assert,socket.connect(console_interfaces[1], console_ports[1]));
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
44 if (not st) then print("Error"..(conn and ": "..conn or "")); return 1; end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
45
1056
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
46 local banner = config.get("*", "console_banner");
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
47 if (
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
48 (not banner) or
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
49 (
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
50 (type(banner) == "string") and
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
51 (banner:match("^| (.+)$"))
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
52 )
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
53 ) then
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
54 repeat
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
55 local rec_banner = conn:receive()
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
56 until
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
57 rec_banner == "" or
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
58 rec_banner == nil; -- skip banner
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
59 end
b307b72ae527 mod_listusers: fixed banner skipping cycle
Vadim Misbakh-Soloviov <mva@mva.name>
parents: 1055
diff changeset
60
1055
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
61 conn:send("c2s:show()\n");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
62 conn:settimeout(1); -- Only hit in case of failure
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
63
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
64 repeat local line = conn:receive()
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
65 if not line then break; end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
66 local jid = line:match("^| (.+)$");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
67 if jid then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
68 jid = jid:gsub(" %- (%w+%(%d+%))$", "\t%1");
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
69 print(jid);
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
70 elseif line:match("^| OK:") then
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
71 return 0;
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
72 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
73 until false;
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
74 end
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
75 return 0;
3dd909e87143 mod_listusers: added (+config support; -assert tracebacks; +user friendly connection errors; -unneded repeat-until cycle, which braked module)
Vadim Misbakh-Soloviov <mva@mva.name>
parents:
diff changeset
76 end