aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_auth.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_auth.erl')
-rw-r--r--src/ejabberd_auth.erl23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl
index 63d136a2f..7e0aa4284 100644
--- a/src/ejabberd_auth.erl
+++ b/src/ejabberd_auth.erl
@@ -20,11 +20,12 @@
set_password/2,
check_password/2,
check_password/4,
- try_register/2]).
+ try_register/2,
+ dirty_get_registered_users/0,
+ is_user_exists/1]).
%% gen_server callbacks
--export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,
- dirty_get_registered_users/0]).
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2]).
-record(state, {}).
@@ -162,3 +163,19 @@ try_register(User, Password) ->
dirty_get_registered_users() ->
mnesia:dirty_all_keys(passwd).
+is_user_exists(User) ->
+ LUser = jlib:tolower(User),
+ F = fun() ->
+ case mnesia:read({passwd, LUser}) of
+ [] ->
+ false;
+ [_] ->
+ true
+ end
+ end,
+ case mnesia:transaction(F) of
+ {atomic, Res} ->
+ Res;
+ _ ->
+ false
+ end.