diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-10-09 18:09:05 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-10-09 18:09:05 +0000 |
commit | 7df146166a7229a66e5d7d4fe8476a5a4c646e0b (patch) | |
tree | 4160eed36b115426b948f3944476ce41a1cf9fa6 /src/mod_configure.erl | |
parent | * src/ejabberd_c2s.erl: Added support for "jid-malformed" error (diff) |
* src/ejabberd_c2s.erl: Added authentification logging
* src/ejabberd_listener.erl: Added logging of accepted connections
* src/stringprep/stringprep_drv.c: Cleanup
* src/jd2ejd.erl: Added support for iq:private importing
* src/mod_configure.erl: Fixed user removal
* src/mod_private.erl: Added remove_user/1
* doc/guide.tex: Updated
* src/mod_disco.erl: Added "extra_domains" option
SVN Revision: 146
Diffstat (limited to 'src/mod_configure.erl')
-rw-r--r-- | src/mod_configure.erl | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/mod_configure.erl b/src/mod_configure.erl index 95bf4e417..18cdbdc90 100644 --- a/src/mod_configure.erl +++ b/src/mod_configure.erl @@ -665,13 +665,16 @@ set_form(["config", "remusers"], Lang, XData) -> fun({Var, Vals}) -> case Vals of ["1"] -> - ejabberd_sm ! {route, {"", "", ""}, {Var, "", ""}, + ejabberd_sm ! {route, + jlib:make_jid("", "", ""), + 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_vcard:remove_user(Var), + catch mod_private:remove_user(Var); _ -> ok end @@ -703,7 +706,7 @@ process_sm_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -> deny -> {iq, ID, error, XMLNS, [SubEl, ?ERR_NOT_ALLOWED]}; allow -> - {User, _, _} = To, + #jid{user = User} = To, Lang = xml:get_tag_attr_s("xml:lang", SubEl), case Type of set -> @@ -790,5 +793,24 @@ get_sm_form(_, _, Lang) -> {error, ?ERR_SERVICE_UNAVAILABLE}. +set_sm_form(User, [], Lang, XData) -> + case lists:keysearch("action", 1, XData) of + {value, {_, ["edit"]}} -> + {error, ?ERR_FEATURE_NOT_IMPLEMENTED}; + {value, {_, ["remove"]}} -> + ejabberd_sm ! {route, + jlib:make_jid("", "", ""), + jlib:make_jid(User, "", ""), + {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} + end; set_sm_form(_, _, Lang, XData) -> {error, ?ERR_SERVICE_UNAVAILABLE}. |