Mercurial > prosody-modules
diff mod_muc_moderation/mod_muc_moderation.lua @ 5943:5076b78c95ef
mod_muc_moderation: Fix occupant-id placement in moderated tombstone.
author | John Livingston <git@john-livingston.fr> |
---|---|
date | Mon, 29 Jul 2024 12:35:19 +0200 |
parents | 5ccc03c33158 |
children | 4b677e445b8a |
line wrap: on
line diff
--- a/mod_muc_moderation/mod_muc_moderation.lua Fri Jul 26 18:22:30 2024 +0200 +++ b/mod_muc_moderation/mod_muc_moderation.lua Mon Jul 29 12:35:19 2024 +0200 @@ -107,27 +107,27 @@ announcement:add_direct_child(moderated_occupant_id); end + announcement:reset(); + if muc_log_archive.set and retract then local tombstone = st.message({ from = original.attr.from, type = "groupchat", id = original.attr.id }) :tag("moderated", { xmlns = xmlns_moderate, by = actor_nick }) - :tag("retracted", { xmlns = xmlns_retract, stamp = dt.datetime() }); - - if room.get_occupant_id then - tombstone:add_child(st.stanza("occupant-id", { xmlns = xmlns_occupant_id; id = room:get_occupant_id(actor_occupant) })); - end - - tombstone:up(); - - if room.get_occupant_id then - if moderated_occupant_id then - -- Copy occupant id from moderated message - tombstone:add_child(moderated_occupant_id); - end - end + :tag("retracted", { xmlns = xmlns_retract, stamp = dt.datetime() }):up(); if reason then tombstone:text_tag("reason", reason); end + + if room.get_occupant_id then + if actor_occupant then + tombstone:add_child(st.stanza("occupant-id", { xmlns = xmlns_occupant_id; id = room:get_occupant_id(actor_occupant) })); + end + + if moderated_occupant_id then + -- Copy occupant id from moderated message + tombstone:add_direct_child(moderated_occupant_id); + end + end tombstone:reset(); local was_replaced = muc_log_archive:set(room_node, stanza_id, tombstone);