diff options
author | Badlop <badlop@process-one.net> | 2010-11-30 23:55:33 +0100 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-12-01 00:55:09 +0100 |
commit | 955343f6aae5224e215181f826350a0d5e2def1f (patch) | |
tree | 697cb6389312bb968f97fe07280ea088b8cdeaba /src | |
parent | Corrections on pt_BR translations. (diff) |
When the Password attribute is missing in PIEFXIS file, don't check account auth.
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_piefxis.erl | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/src/ejabberd_piefxis.erl b/src/ejabberd_piefxis.erl index fbbaaba9..fb744b89 100644 --- a/src/ejabberd_piefxis.erl +++ b/src/ejabberd_piefxis.erl @@ -196,35 +196,44 @@ process_element(El,State) -> add_user(El, Domain) -> User = exmpp_xml:get_attribute(El,name,none), Password = exmpp_xml:get_attribute(El,password,none), - add_user(El, Domain, ?BTL(User), ?BTL(Password)). + add_user(El, Domain, User, Password). -%% @spec (El::xmlel(), Domain::string(), User::string(), Password::string()) +%% @spec (El::xmlel(), Domain::string(), User::binary(), Password::binary() | none) %% -> ok | {error, ErrorText::string()} %% @doc Add a new user to the database. %% If user already exists, it will be only updated. -add_user(El, Domain, User, Password) -> +add_user(El, Domain, UserBinary, none) -> + User = ?BTL(UserBinary), + io:format("Account ~s@~s will not be created, updating it...~n", + [User, Domain]), + io:format(""), + populate_user_with_elements(El, Domain, User), + ok; +add_user(El, Domain, UserBinary, PasswordBinary) -> + User = ?BTL(UserBinary), + Password = ?BTL(PasswordBinary), case create_user(User,Password,Domain) of ok -> - ok = exmpp_xml:foreach( - fun(_,Child) -> - populate_user(User,Domain,Child) - end, - El), + populate_user_with_elements(El, Domain, User), ok; {atomic, exists} -> io:format("Account ~s@~s already exists, updating it...~n", [User, Domain]), io:format(""), - ok = exmpp_xml:foreach( - fun(_,Child) -> - populate_user(User,Domain,Child) - end, - El); + populate_user_with_elements(El, Domain, User), + ok; {error, Other} -> ?ERROR_MSG("Error adding user ~s@~s: ~p~n", [User, Domain, Other]), {error, Other} end. +populate_user_with_elements(El, Domain, User) -> + exmpp_xml:foreach( + fun (_,Child) -> + populate_user(User,Domain,Child) + end, + El). + %% @spec (User::string(), Password::string(), Domain::string()) %% -> ok | {atomic, exists} | {error, not_allowed} %% @doc Create a new user |