Software /
code /
prosody
Comparison
plugins/mod_muc_mam.lua @ 10670:5376f882cf82 0.11
mod_muc_mam: Fix traceback saving message from non-occupant (fixes #1497)
Caused by a plugin sending a message from the room itself.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 27 Feb 2020 19:42:51 +0100 |
parent | 10566:f4d12b1434c6 |
child | 10671:5e1384298e97 |
child | 10682:62ef68f95b6f |
comparison
equal
deleted
inserted
replaced
10665:69acda92d5a9 | 10670:5376f882cf82 |
---|---|
333 local stored_stanza = stanza; | 333 local stored_stanza = stanza; |
334 | 334 |
335 if stanza.name == "message" and self:get_whois() == "anyone" then | 335 if stanza.name == "message" and self:get_whois() == "anyone" then |
336 stored_stanza = st.clone(stanza); | 336 stored_stanza = st.clone(stanza); |
337 stored_stanza.attr.to = nil; | 337 stored_stanza.attr.to = nil; |
338 local actor = jid_bare(self._occupants[stanza.attr.from].jid); | 338 local occupant = self._occupants[stanza.attr.from]; |
339 local affiliation = self:get_affiliation(actor) or "none"; | 339 if occupant then |
340 local role = self:get_role(actor) or self:get_default_role(affiliation); | 340 local actor = jid_bare(occupant.jid); |
341 stored_stanza:add_direct_child(st.stanza("x", { xmlns = xmlns_muc_user }) | 341 local affiliation = self:get_affiliation(actor) or "none"; |
342 :tag("item", { affiliation = affiliation; role = role; jid = actor })); | 342 local role = self:get_role(actor) or self:get_default_role(affiliation); |
343 stored_stanza:add_direct_child(st.stanza("x", { xmlns = xmlns_muc_user }) | |
344 :tag("item", { affiliation = affiliation; role = role; jid = actor })); | |
345 end | |
343 end | 346 end |
344 | 347 |
345 -- Policy check | 348 -- Policy check |
346 if not archiving_enabled(self) then return end -- Don't log | 349 if not archiving_enabled(self) then return end -- Don't log |
347 | 350 |