diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-04-19 15:42:24 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-04-19 15:42:24 +0300 |
commit | 7c45b52c86fb2673f5faa47c8cc163af938b09b1 (patch) | |
tree | 37a3f46d82f010d07e5688e54eefae1abb11d35e /src/ejabberd_auth.erl | |
parent | Allow returning HTTP headers in REST responses (diff) |
Correctly support cache tags in ejabberd_auth
Diffstat (limited to 'src/ejabberd_auth.erl')
-rw-r--r-- | src/ejabberd_auth.erl | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index dfe3f534..7d659113 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -613,7 +613,10 @@ db_user_exists(User, Server, Mod) -> case Mod:user_exists(User, Server) of true -> {ok, exists}; false -> error; - {error, _} = Err -> Err + {error, _} = Err -> Err; + {CacheTag, true} -> {CacheTag, {ok, exists}}; + {CacheTag, false} -> {CacheTag, error}; + {_, {error, _}} = Err -> Err end end) of {ok, _} -> @@ -643,10 +646,10 @@ db_check_password(User, AuthzId, Server, ProvidedPassword, fun() -> case Mod:check_password( User, AuthzId, Server, ProvidedPassword) of - true -> - {ok, ProvidedPassword}; - false -> - error + true -> {ok, ProvidedPassword}; + false -> error; + {CacheTag, true} -> {CacheTag, {ok, ProvidedPassword}}; + {CacheTag, false} -> {CacheTag, error} end end) of {ok, _} -> |