Mercurial > prosody-modules
changeset 4992:ed5abb8b8fa8
mod_http_muc_log: Use XEP-0421 ID over nickname for XEP-0308
This prevents someone else from joining with the same nickname as
someone who left, and "correcting" their messages.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 16 Aug 2022 01:41:45 +0200 |
parents | b17d63ef5bdf |
children | f36d15107c15 |
files | mod_http_muc_log/mod_http_muc_log.lua |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_http_muc_log/mod_http_muc_log.lua Tue Aug 16 01:39:25 2022 +0200 +++ b/mod_http_muc_log/mod_http_muc_log.lua Tue Aug 16 01:41:45 2022 +0200 @@ -326,6 +326,7 @@ end local nick = select(3, jid_split(item.attr.from)); + local occupant_id = item:find("{urn:xmpp:occupant-id:0}occupant-id@id") or nick; -- XEP-0066: Out of Band Data local oob = use_oob and item:get_child("x", "jabber:x:oob"); @@ -351,7 +352,7 @@ if edit then local found = false; for n = i-1, 1, -1 do - if logs[n].message_id == edit and nick == logs[n].nick then + if logs[n].message_id == edit and occupant_id == logs[n].occupant_id then found = true; logs[n].edited = archive_id; edit = logs[n].archive_id; @@ -394,6 +395,7 @@ local line = { message_id = message_id; archive_id = archive_id; + occupant_id = occupant_id; datetime = datetime.datetime(when); time = datetime.time(when); verb = verb;