summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-11-30 23:55:33 +0100
committerBadlop <badlop@process-one.net>2010-12-01 00:55:09 +0100
commit955343f6aae5224e215181f826350a0d5e2def1f (patch)
tree697cb6389312bb968f97fe07280ea088b8cdeaba /src
parentCorrections 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.erl35
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