Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_auth_riak.erl')
-rw-r--r--src/ejabberd_auth_riak.erl22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/ejabberd_auth_riak.erl b/src/ejabberd_auth_riak.erl
index 71f87e186..e5d901cfc 100644
--- a/src/ejabberd_auth_riak.erl
+++ b/src/ejabberd_auth_riak.erl
@@ -40,6 +40,7 @@
get_password_s/2, is_user_exists/2, remove_user/2,
remove_user/3, store_type/0, export/1, import/3,
plain_password_required/0]).
+-export([passwd_schema/0]).
-include("ejabberd.hrl").
@@ -63,10 +64,13 @@ store_type() ->
true -> scram %% allows: PLAIN SCRAM
end.
+passwd_schema() ->
+ {record_info(fields, passwd), #passwd{}}.
+
check_password(User, Server, Password) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{ok, #passwd{password = Password}} when is_binary(Password) ->
Password /= <<"">>;
{ok, #passwd{password = Scram}} when is_record(Scram, scram) ->
@@ -79,7 +83,7 @@ check_password(User, Server, Password, Digest,
DigestGen) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{ok, #passwd{password = Passwd}} when is_binary(Passwd) ->
DigRes = if Digest /= <<"">> ->
Digest == DigestGen(Passwd);
@@ -114,6 +118,7 @@ set_password(User, Server, Password) ->
false -> Password
end,
ok = ejabberd_riak:put(#passwd{us = US, password = Password2},
+ passwd_schema(),
[{'2i', [{<<"host">>, LServer}]}])
end.
@@ -125,7 +130,7 @@ try_register(User, Server, PasswordList) ->
if (LUser == error) or (LServer == error) ->
{error, invalid_jid};
true ->
- case ejabberd_riak:get(passwd, US) of
+ case ejabberd_riak:get(passwd, passwd_schema(), US) of
{error, notfound} ->
Password2 = case is_scrammed() and
is_binary(Password)
@@ -136,6 +141,7 @@ try_register(User, Server, PasswordList) ->
{atomic, ejabberd_riak:put(
#passwd{us = US,
password = Password2},
+ passwd_schema(),
[{'2i', [{<<"host">>, LServer}]}])};
{ok, _} ->
exists;
@@ -177,7 +183,7 @@ get_vh_registered_users_number(Server, _) ->
get_password(User, Server) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{ok, #passwd{password = Password}}
when is_binary(Password) ->
Password;
@@ -193,7 +199,7 @@ get_password(User, Server) ->
get_password_s(User, Server) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{ok, #passwd{password = Password}}
when is_binary(Password) ->
Password;
@@ -206,7 +212,7 @@ get_password_s(User, Server) ->
is_user_exists(User, Server) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{error, notfound} -> false;
{ok, _} -> true;
Err -> Err
@@ -221,7 +227,7 @@ remove_user(User, Server) ->
remove_user(User, Server, Password) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
- case ejabberd_riak:get(passwd, {LUser, LServer}) of
+ case ejabberd_riak:get(passwd, passwd_schema(), {LUser, LServer}) of
{ok, #passwd{password = Password}}
when is_binary(Password) ->
ejabberd_riak:delete(passwd, {LUser, LServer}),
@@ -285,6 +291,6 @@ export(_Server) ->
end}].
import(LServer, riak, #passwd{} = Passwd) ->
- ejabberd_riak:put(Passwd, [{'2i', [{<<"host">>, LServer}]}]);
+ ejabberd_riak:put(Passwd, passwd_schema(), [{'2i', [{<<"host">>, LServer}]}]);
import(_, _, _) ->
pass.