Mercurial > prosody-modules
annotate mod_muc_lang/mod_muc_lang.lua @ 6029:cc665f343690
mod_firewall: SUBSCRIBED: Flip subscription check to match documentation
The documentation claims that this condition checks whether the recipient is
subscribed to the sender.
However, it was using the wrong method, and actually checking whether the
sender was subscribed to the recipient.
A quick poll of folk suggested that the documentation's approach is the right
one, so this should fix the code to match the documentation.
This should also fix the bundled anti-spam rules from blocking presence from
JIDs that you subscribe do (but don't have a mutual subscription with).
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 22 Nov 2024 13:50:48 +0000 |
| parents | ef5d52ca31bb |
| children |
| rev | line source |
|---|---|
|
3546
ef5d52ca31bb
mod_muc_lang: Abort on Prosody 0.11 which supports this natively (thanks Ge0rG)
Kim Alvefur <zash@zash.se>
parents:
3076
diff
changeset
|
1 assert(module:depends"muc".rooms, "This module is not required with Prosody >= 0.11"); |
|
3069
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 module:hook("muc-config-form", function(event) |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local room, form = event.room, event.form; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 table.insert(form, { |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 name = "muc#roomconfig_lang", |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 type = "text-single", |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 label = "Natural Language for Room Discussions", |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 value = room._data.language, |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 }); |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 end); |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 module:hook("muc-config-submitted", function(event) |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 local room, fields, changed = event.room, event.fields, event.changed; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 local new = fields["muc#roomconfig_lang"]; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 if new ~= room._data.language then |
|
3073
ef8fe8bec5b1
mod_muc_lang: Fix to use correct data field
Kim Alvefur <zash@zash.se>
parents:
3069
diff
changeset
|
17 room._data.language = new; |
|
3069
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 if type(changed) == "table" then |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 changed["muc#roomconfig_lang"] = true; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 else |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 event.changed = true; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 end |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 end |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 end); |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 module:hook("muc-disco#info", function (event) |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 local room, form, formdata = event.room, event.form, event.formdata; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 table.insert(form, { |
|
3074
57396a32fc05
mod_muc_lang: Fix to use correct field name in disco#info
Kim Alvefur <zash@zash.se>
parents:
3073
diff
changeset
|
30 name = "muc#roominfo_lang", |
|
3069
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 value = room._data.language, |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 }); |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 formdata["muc#roominfo_lang"] = room._data.language; |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 end); |
|
e1db146984a0
mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
