From 34791c086c04748d1076fb84bdf113ed0eaab3d3 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Mon, 4 Apr 2016 17:18:27 +0200 Subject: [PATCH] mod_roster: Handle roster item removal with event on user deletion --- plugins/mod_roster.lua | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/mod_roster.lua b/plugins/mod_roster.lua index 0af088cb..0e3fdc4e 100644 --- a/plugins/mod_roster.lua +++ b/plugins/mod_roster.lua @@ -134,17 +134,15 @@ end); module:hook_global("user-deleted", function(event) local username, host = event.username, event.host; + local origin = event.origin or prosody.hosts[host]; if host ~= module.host then return end local bare = username .. "@" .. host; local roster = rm_load_roster(username, host); for jid, item in pairs(roster) do if jid then - if item.subscription == "both" or item.subscription == "from" or roster[false].pending[jid] then - module:send(st.presence({type="unsubscribed", from=bare, to=jid})); - end - if item.subscription == "both" or item.subscription == "to" or item.ask then - module:send(st.presence({type="unsubscribe", from=bare, to=jid})); - end + module:fire_event("roster-item-removed", { + username = username, jid = jid, item = item, roster = roster, origin = origin, + }); end end end, 300); -- 2.30.2