Mercurial > prosody-hg
annotate plugins/muc/restrict_pm.lib.lua @ 13946:f5e8ab42c708
mod_http_file_share: Check that files are still there with correct size
Failed uploads can leave behind unused slots. Files shouldn't change
size after they have been successfully uploaded, but might as well
double check it.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 04 Dec 2021 18:56:51 +0100 |
| parents | 0dd82a8f1913 |
| children |
| rev | line source |
|---|---|
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 -- Based on code from mod_muc_restrict_pm in prosody-modules@d82c0383106a |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 -- by Nicholas George <wirlaburla@worlio.com> |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 |
|
13578
5fb7b9a9346f
MUC: Use fully qualified import
Kim Alvefur <zash@zash.se>
parents:
13495
diff
changeset
|
4 local st = require "prosody.util.stanza"; |
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 local muc_util = module:require "muc/util"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 local valid_roles = muc_util.valid_roles; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 -- COMPAT w/ prosody-modules allow_pm |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 local compat_map = { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 everyone = "visitor"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 participants = "participant"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 moderators = "moderator"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 members = "affiliated"; |
|
13888
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
14 anyone = "visitor"; |
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 local function get_allow_pm(room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 local val = room._data.allow_pm; |
|
13888
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
19 val = compat_map[val] or val or "visitor"; |
|
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
20 if not (val == "affiliated" or valid_roles[val]) then return "visitor"; end |
|
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
21 return val; |
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 local function set_allow_pm(room, val) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 if get_allow_pm(room) == val then return false; end |
|
13888
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
26 if not (val == "affiliated" or valid_roles[val]) then return false end |
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 room._data.allow_pm = val; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 return true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 local function get_allow_modpm(room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 return room._data.allow_modpm or false; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 local function set_allow_modpm(room, val) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 if get_allow_modpm(room) == val then return false; end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 room._data.allow_modpm = val; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 return true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 module:hook("muc-config-form", function(event) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 local pmval = get_allow_pm(event.room); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 table.insert(event.form, { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 name = 'muc#roomconfig_allowpm'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
45 type = 'list-single'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
46 label = 'Allow private messages from'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
47 options = { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
48 { value = 'visitor', label = 'Everyone', default = pmval == 'visitor' }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 { value = 'participant', label = 'Participants', default = pmval == 'participant' }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 { value = 'moderator', label = 'Moderators', default = pmval == 'moderator' }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 { value = 'affiliated', label = "Members", default = pmval == "affiliated" }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 { value = 'none', label = 'No one', default = pmval == 'none' }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 } |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 }); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
55 table.insert(event.form, { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 name = '{xmpp:prosody.im}muc#allow_modpm'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 type = 'boolean'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 label = 'Always allow private messages to moderators'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 value = get_allow_modpm(event.room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
60 }); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
61 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 module:hook("muc-config-submitted/muc#roomconfig_allowpm", function(event) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
64 if set_allow_pm(event.room, event.value) then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 event.status_codes["104"] = true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
66 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
67 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
68 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
69 module:hook("muc-config-submitted/{xmpp:prosody.im}muc#allow_modpm", function(event) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
70 if set_allow_modpm(event.room, event.value) then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
71 event.status_codes["104"] = true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
72 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
73 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
74 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
75 local who_restricted = { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
76 none = "in this group"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
77 participant = "from guests"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
78 moderator = "from non-moderators"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
79 affiliated = "from non-members"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
80 }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
81 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
82 module:hook("muc-private-message", function(event) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
83 local stanza, room = event.stanza, event.room; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
84 local from_occupant = room:get_occupant_by_nick(stanza.attr.from); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
85 local to_occupant = room:get_occupant_by_nick(stanza.attr.to); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
86 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
87 -- To self is always okay |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
88 if to_occupant.bare_jid == from_occupant.bare_jid then return; end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
89 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
90 if get_allow_modpm(room) then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
91 if to_occupant and to_occupant.role == 'moderator' |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
92 or from_occupant and from_occupant.role == "moderator" then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
93 return; -- Allow to/from moderators |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
94 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
95 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
96 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
97 local pmval = get_allow_pm(room); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
98 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
99 if pmval ~= "none" then |
|
13888
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
100 if pmval == "affiliated" then |
|
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
101 if room:get_affiliation(from_occupant.bare_jid) then |
|
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
102 return; -- Allow from affiliated users |
|
0dd82a8f1913
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
Kim Alvefur <zash@zash.se>
parents:
13578
diff
changeset
|
103 end |
|
13495
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
104 elseif valid_roles[from_occupant.role] >= valid_roles[pmval] then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
105 module:log("debug", "Allowing PM: %s(%d) >= %s(%d)", from_occupant.role, valid_roles[from_occupant.role], pmval, valid_roles[pmval]); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
106 return; -- Allow from a permitted role |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
107 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
108 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
109 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
110 local msg = ("Private messages are restricted %s"):format(who_restricted[pmval]); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
111 module:log("debug", "Blocking PM from %s %s: %s", from_occupant.role, stanza.attr.from, msg); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
112 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
113 room:route_to_occupant( |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
114 from_occupant, |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
115 st.error_reply(stanza, "cancel", "policy-violation", msg, room.jid) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
116 ); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
117 return false; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
118 end, 1); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
119 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
120 return { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
121 get_allow_pm = get_allow_pm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
122 set_allow_pm = set_allow_pm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
123 get_allow_modpm = get_allow_modpm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
124 set_allow_modpm = set_allow_modpm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
125 }; |
