aboutsummaryrefslogtreecommitdiff
path: root/src/mod_privacy.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2008-12-23 00:48:09 +0000
committerBadlop <badlop@process-one.net>2008-12-23 00:48:09 +0000
commit74f15f790a4158269b2bf7ec0d3b3ed9eb4998d5 (patch)
tree6b2e0928c297d5ab88a875cbe087501f207236d1 /src/mod_privacy.erl
parentFix 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.erl16
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