diff options
author | Badlop <badlop@process-one.net> | 2008-08-18 18:21:10 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2008-08-18 18:21:10 +0000 |
commit | 4ae1bda33f40384eba921af08c67c440145ed2cd (patch) | |
tree | 8fa3ea78388efd118465b271af98dc041c06498d /src/mod_register.erl | |
parent | Fix call to unexported function nodetree_default:get_subnodes/2 (diff) |
* src/mod_register.erl: Change password using mod_register always
returns success regardless of real result (EJAB-723)
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise
SVN Revision: 1530
Diffstat (limited to 'src/mod_register.erl')
-rw-r--r-- | src/mod_register.erl | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/mod_register.erl b/src/mod_register.erl index f591daef5..7a4eca79f 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -163,8 +163,7 @@ process_iq(From, To, Password = xml:get_tag_cdata(PTag), case From of #jid{user = User, lserver = Server} -> - ejabberd_auth:set_password(User, Server, Password), - IQ#iq{type = result, sub_el = [SubEl]}; + try_set_password(User, Server, Password, IQ, SubEl); _ -> case try_register(User, Server, Password, Source, Lang) of @@ -194,6 +193,20 @@ process_iq(From, To, {xmlelement, "password", [], []}]}]} end. +%% @doc Try to change password and return IQ response +try_set_password(User, Server, Password, IQ, SubEl) -> + case ejabberd_auth:set_password(User, Server, Password) of + ok -> + IQ#iq{type = result, sub_el = [SubEl]}; + {error, empty_password} -> + IQ#iq{type = error, sub_el = [SubEl, ?ERR_BAD_REQUEST]}; + {error, not_allowed} -> + IQ#iq{type = error, sub_el = [SubEl, ?ERR_NOT_ALLOWED]}; + {error, invalid_jid} -> + IQ#iq{type = error, sub_el = [SubEl, ?ERR_ITEM_NOT_FOUND]}; + _ -> + IQ#iq{type = error, sub_el = [SubEl, ?ERR_INTERNAL_SERVER_ERROR]} + end. try_register(User, Server, Password, Source, Lang) -> case jlib:is_nodename(User) of |