Software /
code /
prosody
Diff
plugins/mod_roster.lua @ 7333:9d0e65d919e8
mod_roster: Handle roster item removal with event on user deletion
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 04 Apr 2016 17:18:27 +0200 |
parent | 7331:c8ad387aab1c |
child | 7334:566d0a56b37f |
line wrap: on
line diff
--- a/plugins/mod_roster.lua Mon Apr 04 17:15:47 2016 +0200 +++ b/plugins/mod_roster.lua Mon Apr 04 17:18:27 2016 +0200 @@ -134,17 +134,15 @@ 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);