aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_auth.erl14
-rw-r--r--src/mod_configure.erl10
-rw-r--r--src/mod_last.erl9
3 files changed, 22 insertions, 11 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl
index 004023fc4..1503f7193 100644
--- a/src/ejabberd_auth.erl
+++ b/src/ejabberd_auth.erl
@@ -202,7 +202,12 @@ remove_user(User) ->
F = fun() ->
mnesia:delete({passwd, LUser})
end,
- mnesia:transaction(F).
+ mnesia:transaction(F),
+ catch mod_roster:remove_user(User),
+ catch mod_offline:remove_user(User),
+ catch mod_last:remove_user(User),
+ catch mod_vcard:remove_user(User),
+ catch mod_private:remove_user(User).
remove_user(User, Password) ->
LUser = jlib:nodeprep(User),
@@ -218,6 +223,13 @@ remove_user(User, Password) ->
end
end,
case mnesia:transaction(F) of
+ {atomic, ok} ->
+ catch mod_roster:remove_user(User),
+ catch mod_offline:remove_user(User),
+ catch mod_last:remove_user(User),
+ catch mod_vcard:remove_user(User),
+ catch mod_private:remove_user(User),
+ ok;
{atomic, Res} ->
Res;
_ ->
diff --git a/src/mod_configure.erl b/src/mod_configure.erl
index 94dad76ff..e07d2ac67 100644
--- a/src/mod_configure.erl
+++ b/src/mod_configure.erl
@@ -671,11 +671,7 @@ set_form(["config", "remusers"], Lang, XData) ->
jlib:make_jid(Var, "", ""),
{xmlelement, "broadcast", [],
[{exit, "User removed"}]}},
- catch ejabberd_auth:remove_user(Var),
- catch mod_roster:remove_user(Var),
- catch mod_offline:remove_user(Var),
- catch mod_vcard:remove_user(Var),
- catch mod_private:remove_user(Var);
+ catch ejabberd_auth:remove_user(Var);
_ ->
ok
end
@@ -805,10 +801,6 @@ set_sm_form(User, [], Lang, XData) ->
{xmlelement, "broadcast", [],
[{exit, "User removed"}]}},
catch ejabberd_auth:remove_user(User),
- catch mod_roster:remove_user(User),
- catch mod_offline:remove_user(User),
- catch mod_vcard:remove_user(User),
- catch mod_private:remove_user(User),
{result, []};
_ ->
{error, ?ERR_BAD_REQUEST}
diff --git a/src/mod_last.erl b/src/mod_last.erl
index 50f16fd24..ef7a61b9a 100644
--- a/src/mod_last.erl
+++ b/src/mod_last.erl
@@ -16,7 +16,8 @@
stop/0,
process_local_iq/3,
process_sm_iq/3,
- on_presence_update/1]).
+ on_presence_update/1,
+ remove_user/1]).
-include("ejabberd.hrl").
-include("jlib.hrl").
@@ -112,3 +113,9 @@ on_presence_update(LUser) ->
mnesia:transaction(F).
+remove_user(User) ->
+ LUser = jlib:nodeprep(User),
+ F = fun() ->
+ mnesia:delete({last_activity, LUser})
+ end,
+ mnesia:transaction(F).