aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_last.erl32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/mod_last.erl b/src/mod_last.erl
index 34ab81c6f..4a61f3b53 100644
--- a/src/mod_last.erl
+++ b/src/mod_last.erl
@@ -22,6 +22,7 @@
-include("ejabberd.hrl").
-include("jlib.hrl").
+-include("mod_privacy.hrl").
-record(last_activity, {us, timestamp, status}).
@@ -76,23 +77,22 @@ process_sm_iq(From, To, #iq{type = Type, sub_el = SubEl} = IQ) ->
{none, []}, [User, Server, From]),
if
(Subscription == both) or (Subscription == from) ->
- case catch mod_privacy:get_user_list(User, Server) of
- {'EXIT', _Reason} ->
+ UserListRecord = ejabberd_hooks:run_fold(
+ privacy_get_user_list, Server,
+ #userlist{},
+ [User, Server]),
+ case ejabberd_hooks:run_fold(
+ privacy_check_packet, Server,
+ allow,
+ [User, Server, UserListRecord,
+ {From, To,
+ {xmlelement, "presence", [], []}},
+ out]) of
+ allow ->
get_last(IQ, SubEl, User, Server);
- List ->
- case catch mod_privacy:check_packet(
- User, Server, List,
- {From, To,
- {xmlelement, "presence", [], []}},
- out) of
- {'EXIT', _Reason} ->
- get_last(IQ, SubEl, User, Server);
- allow ->
- get_last(IQ, SubEl, User, Server);
- deny ->
- IQ#iq{type = error,
- sub_el = [SubEl, ?ERR_NOT_ALLOWED]}
- end
+ deny ->
+ IQ#iq{type = error,
+ sub_el = [SubEl, ?ERR_NOT_ALLOWED]}
end;
true ->
IQ#iq{type = error,