summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMickaël Rémond <mickael.remond@process-one.net>2007-07-26 09:37:16 +0000
committerMickaël Rémond <mickael.remond@process-one.net>2007-07-26 09:37:16 +0000
commit9081f1f2b67e737c74f0d5c12a88ec11548c7a03 (patch)
treec59aa64e981ad91bdf19dbc7c495edf051ab39d7
parent* src/mod_last.erl: Adapted to mod_privacy changes. (diff)
* src/mod_last_odbc.erl: Adapted to mod_privacy changes.
* src/mod_privacy_odbc.erl: Refactoring to extract records in include file. SVN Revision: 827
Diffstat (limited to '')
-rw-r--r--ChangeLog7
-rw-r--r--src/mod_last_odbc.erl33
-rw-r--r--src/mod_privacy_odbc.erl19
3 files changed, 23 insertions, 36 deletions
diff --git a/ChangeLog b/ChangeLog
index c461c81f..ac651bed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,12 @@
2007-07-26 Mickael Remond <mickael.remond@process-one.net>
+ * src/mod_last_odbc.erl: Adapted to mod_privacy changes.
+ * src/mod_privacy_odbc.erl: Refactoring to extract records in
+ include file.
+
* src/mod_last.erl: Adapted to mod_privacy changes.
- * src/mod_privacy.erl: Refactoring to extract records in include file.
+ * src/mod_privacy.erl: Refactoring to extract records in include
+ file.
* src/mod_privacy.hrl: Likewise.
* src/mod_roster_odbc.erl: Fixed wrong call.
diff --git a/src/mod_last_odbc.erl b/src/mod_last_odbc.erl
index 8ec76823..0b011912 100644
--- a/src/mod_last_odbc.erl
+++ b/src/mod_last_odbc.erl
@@ -22,7 +22,7 @@
-include("ejabberd.hrl").
-include("jlib.hrl").
-
+-include("mod_privacy.hrl").
start(Host, Opts) ->
IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
@@ -69,23 +69,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,
diff --git a/src/mod_privacy_odbc.erl b/src/mod_privacy_odbc.erl
index 271fc450..845f0500 100644
--- a/src/mod_privacy_odbc.erl
+++ b/src/mod_privacy_odbc.erl
@@ -22,24 +22,7 @@
-include("ejabberd.hrl").
-include("jlib.hrl").
-
--record(privacy, {us,
- default = none,
- lists = []}).
-
--record(listitem, {type = none,
- value = none,
- action,
- order,
- match_all = false,
- match_iq = false,
- match_message = false,
- match_presence_in = false,
- match_presence_out = false
- }).
-
--record(userlist, {name = none, list = []}).
-
+-include("mod_privacy.hrl").
start(Host, Opts) ->
IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),