Software / code / prosody
Annotate
plugins/muc/restrict_pm.lib.lua @ 13758:fc97319ef48e 13.0
util.sasl: Preserve 'userdata' field between clones
The :clean_clone() method is designed to provide a new cloned SASL handler,
to be used when starting a fresh SASL negotiation on an existing connection.
The userdata field is currently populated by mod_saslauth with the "read-only"
information that the channel binding methods need to do their stuff.
When :clean_clone() does not preserve this, it causes tracebacks in the cb
profile handlers due to the property being nil.
This does mean that SASL handlers should now not be reused (even when cloned)
across different connections, if they ever could.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 06 Mar 2025 13:34:37 +0000 |
| parent | 13578:5fb7b9a9346f |
| 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"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 }; |
|
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 local function get_allow_pm(room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 local val = room._data.allow_pm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 return compat_map[val] or val or "visitor"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 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
|
22 if get_allow_pm(room) == val then return false; end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 room._data.allow_pm = val; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 return true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 local function get_allow_modpm(room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 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
|
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 set_allow_modpm(room, val) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 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
|
33 room._data.allow_modpm = val; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 return true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 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
|
38 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
|
39 table.insert(event.form, { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 name = 'muc#roomconfig_allowpm'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 type = 'list-single'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 label = 'Allow private messages from'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 options = { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 { 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
|
45 { 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
|
46 { 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
|
47 { 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
|
48 { 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
|
49 } |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 }); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 table.insert(event.form, { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 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
|
53 type = 'boolean'; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 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
|
55 value = get_allow_modpm(event.room) |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 }); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 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
|
60 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
|
61 event.status_codes["104"] = true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
64 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 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
|
66 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
|
67 event.status_codes["104"] = true; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
68 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
69 end); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
70 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
71 local who_restricted = { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
72 none = "in this group"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
73 participant = "from guests"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
74 moderator = "from non-moderators"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
75 affiliated = "from non-members"; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
76 }; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
77 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
78 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
|
79 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
|
80 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
|
81 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
|
82 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
83 -- To self is always okay |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
84 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
|
85 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
86 if get_allow_modpm(room) then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
87 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
|
88 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
|
89 return; -- Allow to/from moderators |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
90 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
91 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
92 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
93 local pmval = get_allow_pm(room); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
94 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
95 if pmval ~= "none" then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
96 if pmval == "affiliated" and room:get_affiliation(from_occupant.bare_jid) then |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
97 return; -- Allow from affiliated users |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
98 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
|
99 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
|
100 return; -- Allow from a permitted role |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
101 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
102 end |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
103 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
104 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
|
105 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
|
106 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
107 room:route_to_occupant( |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
108 from_occupant, |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
109 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
|
110 ); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
111 return false; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
112 end, 1); |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
113 |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
114 return { |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
115 get_allow_pm = get_allow_pm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
116 set_allow_pm = set_allow_pm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
117 get_allow_modpm = get_allow_modpm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
118 set_allow_modpm = set_allow_modpm; |
|
47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
119 }; |