Mercurial > prosody-modules
comparison mod_muc_rtbl/mod_muc_rtbl.lua @ 5176:4791e0412ff3
mod_muc_rtbl: ignore blocklist for affiliated users for messages
Just like we ignore the blocklist for join attempts from
affiliated users, we also do that now on messages.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Wed, 22 Feb 2023 13:35:03 +0100 |
parents | 432587ad1642 |
children | f6b5f04d4b28 |
comparison
equal
deleted
inserted
replaced
5175:432587ad1642 | 5176:4791e0412ff3 |
---|---|
127 return true; | 127 return true; |
128 end | 128 end |
129 end); | 129 end); |
130 | 130 |
131 module:hook("muc-occupant-groupchat", function(event) | 131 module:hook("muc-occupant-groupchat", function(event) |
132 local affiliation = event.room:get_affiliation(event.occupant.bare_jid); | |
133 if affiliation and affiliation ~= "none" then | |
134 -- Skip check for affiliated users | |
135 return; | |
136 end | |
137 | |
132 local bare_hash, host_hash = update_hashes(event.occupant); | 138 local bare_hash, host_hash = update_hashes(event.occupant); |
133 if banned_hashes[bare_hash] or banned_hashes[host_hash] then | 139 if banned_hashes[bare_hash] or banned_hashes[host_hash] then |
134 module:log("debug", "Blocked message from user <%s> to room <%s> due to RTBL match", event.stanza.attr.from, event.stanza.attr.to); | 140 module:log("debug", "Blocked message from user <%s> to room <%s> due to RTBL match", event.stanza.attr.from, event.stanza.attr.to); |
135 local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "You are banned from this service", event.room.jid); | 141 local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "You are banned from this service", event.room.jid); |
136 event.origin.send(error_reply); | 142 event.origin.send(error_reply); |
138 end | 144 end |
139 end); | 145 end); |
140 | 146 |
141 module:hook("muc-private-message", function(event) | 147 module:hook("muc-private-message", function(event) |
142 local occupant = event.room:get_occupant_by_nick(event.stanza.attr.from); | 148 local occupant = event.room:get_occupant_by_nick(event.stanza.attr.from); |
149 local affiliation = event.room:get_affiliation(event.occupant.bare_jid); | |
150 if affiliation and affiliation ~= "none" then | |
151 -- Skip check for affiliated users | |
152 return; | |
153 end | |
154 | |
143 local bare_hash, host_hash = update_hashes(occupant); | 155 local bare_hash, host_hash = update_hashes(occupant); |
144 if banned_hashes[bare_hash] or banned_hashes[host_hash] then | 156 if banned_hashes[bare_hash] or banned_hashes[host_hash] then |
145 module:log("debug", "Blocked private message from user <%s> from room <%s> due to RTBL match", occupant.bare_jid, event.stanza.attr.to); | 157 module:log("debug", "Blocked private message from user <%s> from room <%s> due to RTBL match", occupant.bare_jid, event.stanza.attr.to); |
146 local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "You are banned from this service", event.room.jid); | 158 local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "You are banned from this service", event.room.jid); |
147 event.origin.send(error_reply); | 159 event.origin.send(error_reply); |