25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-22 16:20:52 +01:00

When the Password attribute is missing in PIEFXIS file, don't check account auth.

This commit is contained in:
Badlop 2010-12-01 00:34:48 +01:00
parent c9db1f691c
commit b8f04aae6f

View File

@ -162,33 +162,39 @@ add_user(El, Domain) ->
Password = exmpp_xml:get_attribute(El,<<"password">>,none), Password = exmpp_xml:get_attribute(El,<<"password">>,none),
add_user(El, Domain, User, 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()} %% -> ok | {error, ErrorText::string()}
%% @doc Add a new user to the database. %% @doc Add a new user to the database.
%% If user already exists, it will be only updated. %% If user already exists, it will be only updated.
add_user(El, Domain, User, none) ->
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, User, Password) -> add_user(El, Domain, User, Password) ->
case create_user(User,Password,Domain) of case create_user(User,Password,Domain) of
ok -> ok ->
ok = exmpp_xml:foreach( populate_user_with_elements(El, Domain, User),
fun(_,Child) ->
populate_user(User,Domain,Child)
end,
El),
ok; ok;
{atomic, exists} -> {atomic, exists} ->
io:format("Account ~s@~s already exists, updating it...~n", io:format("Account ~s@~s already exists, updating it...~n",
[User, Domain]), [User, Domain]),
io:format(""), io:format(""),
ok = exmpp_xml:foreach( populate_user_with_elements(El, Domain, User),
fun(_,Child) -> ok;
populate_user(User,Domain,Child)
end,
El);
{error, Other} -> {error, Other} ->
?ERROR_MSG("Error adding user ~s@~s: ~p~n", [User, Domain, Other]), ?ERROR_MSG("Error adding user ~s@~s: ~p~n", [User, Domain, Other]),
{error, Other} {error, Other}
end. 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()) %% @spec (User::string(), Password::string(), Domain::string())
%% -> ok | {atomic, exists} | {error, not_allowed} %% -> ok | {atomic, exists} | {error, not_allowed}
%% @doc Create a new user %% @doc Create a new user