aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_auth.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl
index 861d8f37b..585b4a9bc 100644
--- a/src/ejabberd_auth.erl
+++ b/src/ejabberd_auth.erl
@@ -545,8 +545,8 @@ db_user_exists(User, Server, Mod) ->
{ok, _} ->
true;
error ->
- case Mod:store_type(Server) of
- external ->
+ case {Mod:store_type(Server), use_cache(Mod, Server)} of
+ {external, true} ->
case ets_cache:lookup(
?AUTH_CACHE, {User, Server},
fun() ->
@@ -561,6 +561,8 @@ db_user_exists(User, Server, Mod) ->
error ->
false
end;
+ {external, false} ->
+ Mod:user_exists(User, Server);
_ ->
false
end