diff options
author | Mickaël Rémond <mickael.remond@process-one.net> | 2006-06-13 16:52:38 +0000 |
---|---|---|
committer | Mickaël Rémond <mickael.remond@process-one.net> | 2006-06-13 16:52:38 +0000 |
commit | bd276f0b07653bda09c4d88e0230dc5baf6dd8d2 (patch) | |
tree | 77deed45e88a4a08010798ef157541a173f3ae2f /src | |
parent | * src/mod_pubsub/mod_pubsub.erl: Discovery query on an item does (diff) |
* src/ejabberd_auth.erl: Fixed broken multiple connection with
anonymous login problem (EJAB-107).
* src/ejabberd_auth_anonymous.erl: Likewise.
SVN Revision: 579
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_auth.erl | 9 | ||||
-rw-r--r-- | src/ejabberd_auth_anonymous.erl | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index f2c3f4b5..e3839c49 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -25,6 +25,7 @@ get_password/2, get_password_s/2, is_user_exists/2, + is_user_exists_in_other_modules/3, remove_user/2, remove_user/3, plain_password_required/1, @@ -130,6 +131,14 @@ is_user_exists(User, Server) -> M:is_user_exists(User, Server) end, auth_modules(Server)). +%% Check if the user exists in all authentications module except the module +%% passed as parameter +is_user_exists_in_other_modules(Module, User, Server) -> + lists:any( + fun(M) -> + M:is_user_exists(User, Server) + end, auth_modules(Server)--[Module]). + remove_user(User, Server) -> lists:foreach( fun(M) -> diff --git a/src/ejabberd_auth_anonymous.erl b/src/ejabberd_auth_anonymous.erl index e63c6648..5090a353 100644 --- a/src/ejabberd_auth_anonymous.erl +++ b/src/ejabberd_auth_anonymous.erl @@ -149,7 +149,8 @@ check_password(User, Server, Password) -> check_password(User, Server, _Password, _StreamID, _Digest) -> %% We refuse login for registered accounts (They cannot logged but %% they however are "reserved") - case ejabberd_auth:is_user_exists(User, Server) of + case ejabberd_auth:is_user_exists_in_other_modules(?MODULE, + User, Server) of true -> false; false -> login(User, Server) end. |