From 36157e41c9c60c1f60bc54bf0aa667a578944a38 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Sat, 1 Nov 2003 21:06:50 +0000 Subject: [PATCH] * src/mod_last.erl: Added remove_user/1 function * src/mod_configure.erl: Removing of user's stuff moved to ejabberd_auth * src/ejabberd_auth.erl: Likewise SVN Revision: 167 --- ChangeLog | 8 ++++++++ src/ejabberd_auth.erl | 14 +++++++++++++- src/mod_configure.erl | 10 +--------- src/mod_last.erl | 9 ++++++++- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 270e77cd6..dbe1a1779 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2003-11-01 Alexey Shchepin + + * src/mod_last.erl: Added remove_user/1 function + + * src/mod_configure.erl: Removing of user's stuff moved to + ejabberd_auth + * src/ejabberd_auth.erl: Likewise + 2003-10-31 Alexey Shchepin * src/mod_irc/mod_irc_connection.erl: Updated to work more 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).