diff options
Diffstat (limited to 'src/ejabberd_auth.erl')
-rw-r--r-- | src/ejabberd_auth.erl | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index e7316ec55..f2c3f4b50 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -75,17 +75,21 @@ set_password(User, Server, Password) -> end, {error, not_allowed}, auth_modules(Server)). try_register(User, Server, Password) -> - case lists:member(jlib:nameprep(Server), ?MYHOSTS) and - not is_user_exists(User,Server) of + case is_user_exists(User,Server) of true -> - lists:foldl( - fun(_M, {atomic, ok} = Res) -> - Res; - (M, _) -> - M:try_register(User, Server, Password) - end, {error, not_allowed}, auth_modules(Server)); + {atomic, exists}; false -> - {error, not_allowed} + case lists:member(jlib:nameprep(Server), ?MYHOSTS) of + true -> + lists:foldl( + fun(_M, {atomic, ok} = Res) -> + Res; + (M, _) -> + M:try_register(User, Server, Password) + end, {error, not_allowed}, auth_modules(Server)); + false -> + {error, not_allowed} + end end. %% Registered users list do not include anonymous users logged |