aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_auth_odbc.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_auth_odbc.erl')
-rw-r--r--src/ejabberd_auth_odbc.erl61
1 files changed, 19 insertions, 42 deletions
diff --git a/src/ejabberd_auth_odbc.erl b/src/ejabberd_auth_odbc.erl
index cf5a96131..d946bfd48 100644
--- a/src/ejabberd_auth_odbc.erl
+++ b/src/ejabberd_auth_odbc.erl
@@ -57,10 +57,8 @@ check_password(User, Server, Password) ->
false;
LUser ->
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["select password from users "
- "where username='", Username, "';"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:get_password(LServer, Username) of
{selected, ["password"], [{Password}]} ->
true;
_ ->
@@ -74,10 +72,8 @@ check_password(User, Server, Password, StreamID, Digest) ->
false;
LUser ->
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["select password from users "
- "where username='", Username, "';"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:get_password(LServer, Username) of
{selected, ["password"], [{Passwd}]} ->
DigRes = if
Digest /= "" ->
@@ -103,11 +99,7 @@ set_password(User, Server, Password) ->
Username = ejabberd_odbc:escape(LUser),
Pass = ejabberd_odbc:escape(Password),
LServer = jlib:nameprep(Server),
- catch ejabberd_odbc:sql_transaction(
- LServer,
- [["delete from users where username='", Username ,"';"],
- ["insert into users(username, password) "
- "values ('", Username, "', '", Pass, "');"]])
+ catch odbc_queries:set_password_t(LServer, Username, Pass)
end.
@@ -118,10 +110,8 @@ try_register(User, Server, Password) ->
LUser ->
Username = ejabberd_odbc:escape(LUser),
Pass = ejabberd_odbc:escape(Password),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["insert into users(username, password) "
- "values ('", Username, "', '", Pass, "');"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:add_user(LServer, Username, Pass) of
{updated, 1} ->
{atomic, ok};
_ ->
@@ -134,9 +124,7 @@ dirty_get_registered_users() ->
get_vh_registered_users(Server) ->
LServer = jlib:nameprep(Server),
- case catch ejabberd_odbc:sql_query(
- LServer,
- "select username from users") of
+ case catch odbc_queries:list_users(LServer) of
{selected, ["username"], Res} ->
[{U, LServer} || {U} <- Res];
_ ->
@@ -149,10 +137,8 @@ get_password(User, Server) ->
false;
LUser ->
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["select password from users "
- "where username='", Username, "';"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:get_password(LServer, Username) of
{selected, ["password"], [{Password}]} ->
Password;
_ ->
@@ -166,10 +152,8 @@ get_password_s(User, Server) ->
"";
LUser ->
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["select password from users "
- "where username='", Username, "';"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:get_password(LServer, Username) of
{selected, ["password"], [{Password}]} ->
Password;
_ ->
@@ -183,10 +167,8 @@ is_user_exists(User, Server) ->
false;
LUser ->
Username = ejabberd_odbc:escape(LUser),
- case catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["select password from users "
- "where username='", Username, "';"]) of
+ LServer = jlib:nameprep(Server),
+ case catch odbc_queries:get_password(LServer, Username) of
{selected, ["password"], [{_Password}]} ->
true;
_ ->
@@ -200,9 +182,8 @@ remove_user(User, Server) ->
error;
LUser ->
Username = ejabberd_odbc:escape(LUser),
- catch ejabberd_odbc:sql_query(
- jlib:nameprep(Server),
- ["delete from users where username='", Username ,"';"]),
+ LServer = jlib:nameprep(Server),
+ catch odbc_queries:del_user(LServer, Username),
ejabberd_hooks:run(remove_user, jlib:nameprep(Server),
[User, Server])
end.
@@ -216,12 +197,8 @@ remove_user(User, Server, Password) ->
Pass = ejabberd_odbc:escape(Password),
LServer = jlib:nameprep(Server),
F = fun() ->
- Result = ejabberd_odbc:sql_query_t(
- ["select password from users where username='",
- Username, "';"]),
- ejabberd_odbc:sql_query_t(["delete from users "
- "where username='", Username,
- "' and password='", Pass, "';"]),
+ Result = odbc_queries:del_user_return_password(
+ LServer, Username, Pass),
case Result of
{selected, ["password"], [{Password}]} ->
ejabberd_hooks:run(remove_user, jlib:nameprep(Server),
@@ -233,6 +210,6 @@ remove_user(User, Server, Password) ->
not_allowed
end
end,
- {atomic, Result } = ejabberd_odbc:transaction(LServer, F),
+ {atomic, Result} = odbc_queries:transaction(LServer, F),
Result
end.