diff options
author | Badlop <badlop@process-one.net> | 2008-12-23 00:48:09 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2008-12-23 00:48:09 +0000 |
commit | 74f15f790a4158269b2bf7ec0d3b3ed9eb4998d5 (patch) | |
tree | 6b2e0928c297d5ab88a875cbe087501f207236d1 /src/mod_privacy.erl | |
parent | Fix send_last_published_item issue when running on clustered table (EJAB-793) (diff) |
* src/odbc/odbc_queries.erl: Fix removal of private_storage of an
account when the account is removed
* src/mod_privacy.erl: Remove privacy lists of an account when the
account is removed (EJAB-720)
* src/mod_privacy_odbc.erl: Likewise
SVN Revision: 1742
Diffstat (limited to 'src/mod_privacy.erl')
-rw-r--r-- | src/mod_privacy.erl | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 4de51b260..6d6c64cf4 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -35,6 +35,7 @@ process_iq_get/5, get_user_list/3, check_packet/6, + remove_user/2, updated_list/3]). -include("ejabberd.hrl"). @@ -57,6 +58,8 @@ start(Host, Opts) -> ?MODULE, check_packet, 50), ejabberd_hooks:add(privacy_updated_list, Host, ?MODULE, updated_list, 50), + ejabberd_hooks:add(remove_user, Host, + ?MODULE, remove_user, 50), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_PRIVACY, ?MODULE, process_iq, IQDisc). @@ -71,6 +74,8 @@ stop(Host) -> ?MODULE, check_packet, 50), ejabberd_hooks:delete(privacy_updated_list, Host, ?MODULE, updated_list, 50), + ejabberd_hooks:delete(remove_user, Host, + ?MODULE, remove_user, 50), gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_PRIVACY). process_iq(_From, _To, IQ) -> @@ -659,6 +664,16 @@ is_type_match(Type, Value, JID, Subscription, Groups) -> end. +remove_user(User, Server) -> + LUser = jlib:nodeprep(User), + LServer = jlib:nameprep(Server), + F = fun() -> + mnesia:delete({privacy, + {LUser, LServer}}) + end, + mnesia:transaction(F). + + updated_list(_, #userlist{name = OldName} = Old, #userlist{name = NewName} = New) -> @@ -670,7 +685,6 @@ updated_list(_, end. - update_table() -> Fields = record_info(fields, privacy), case mnesia:table_info(privacy, attributes) of |