diff options
author | Kim Alvefur <zash@zash.se> | 2016-04-04 17:18:27 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2016-04-04 17:18:27 +0200 |
commit | 35705f87ed7115268facc7853d5bc6b6054df4bc (patch) | |
tree | 436cba83617f2f3c41ce1f68f4d28c53e23c331c | |
parent | c4b8924efae6903e4f1669e04fd832580fde8240 (diff) | |
download | prosody-35705f87ed7115268facc7853d5bc6b6054df4bc.tar.gz prosody-35705f87ed7115268facc7853d5bc6b6054df4bc.zip |
mod_roster: Handle roster item removal with event on user deletion
-rw-r--r-- | plugins/mod_roster.lua | 10 |
1 files 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); |