summaryrefslogtreecommitdiff
path: root/src/mod_last.erl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/mod_last.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mod_last.erl b/src/mod_last.erl
index 3e7a73fd..c20b83b0 100644
--- a/src/mod_last.erl
+++ b/src/mod_last.erl
@@ -35,10 +35,16 @@ start(Opts) ->
?MODULE, process_local_iq, IQDisc),
gen_iq_handler:add_iq_handler(ejabberd_sm, ?NS_LAST,
?MODULE, process_sm_iq, IQDisc),
+ ejabberd_hooks:add(remove_user,
+ ?MODULE, remove_user, 50),
ejabberd_hooks:add(unset_presence_hook,
?MODULE, on_presence_update, 50).
stop() ->
+ ejabberd_hooks:delete(remove_user,
+ ?MODULE, remove_user, 50),
+ ejabberd_hooks:delete(unset_presence_hook,
+ ?MODULE, on_presence_update, 50),
gen_iq_handler:remove_iq_handler(ejabberd_local, ?NS_LAST),
gen_iq_handler:remove_iq_handler(ejabberd_sm, ?NS_LAST).
@@ -63,7 +69,8 @@ process_sm_iq(From, To, #iq{type = Type, sub_el = SubEl} = IQ) ->
get ->
User = To#jid.luser,
{Subscription, _Groups} =
- mod_roster:get_jid_info(User, From),
+ ejabberd_hooks:run_fold(
+ roster_get_jid_info, {none, []}, [User, From]),
if
(Subscription == both) or (Subscription == from) ->
case catch mod_privacy:get_user_list(User) of