summaryrefslogtreecommitdiff
path: root/src/ejabberd_auth.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-02-21 19:52:15 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-02-21 19:52:15 +0000
commitc18826ad53478441d9757292c02985ce342a230e (patch)
treed43be40fc615a6531428a84597d96edc007b5763 /src/ejabberd_auth.erl
parent* src/mod_roster.erl: Fixed bug with handling of roster set (diff)
* src/mod_offline.erl: Now possible to unload this module
* src/ejabberd_sm.erl: Added checks to work correctly when mod_offline not loaded * src/ejabberd_c2s.erl: Likewise * src/mod_register.erl: Added support for users removal * src/ejabberd_auth.erl: Added function to remove user only if specified password correct * src/mod_irc/mod_irc_connection.erl: Fixed bug with changing availability status, added processing of "QUIT" message SVN Revision: 80
Diffstat (limited to 'src/ejabberd_auth.erl')
-rw-r--r--src/ejabberd_auth.erl27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl
index b977103c..49d293de 100644
--- a/src/ejabberd_auth.erl
+++ b/src/ejabberd_auth.erl
@@ -10,9 +10,6 @@
-author('alexey@sevcom.net').
-vsn('$Revision$ ').
-%%-compile(export_all).
-%%-export([Function/Arity, ...]).
-
-behaviour(gen_server).
%% External exports
@@ -24,7 +21,8 @@
dirty_get_registered_users/0,
get_password_s/1,
is_user_exists/1,
- remove_user/1]).
+ remove_user/1,
+ remove_user/2]).
%% gen_server callbacks
-export([init/1,
@@ -200,3 +198,24 @@ remove_user(User) ->
mnesia:delete({passwd, LUser})
end,
mnesia:transaction(F).
+
+remove_user(User, Password) ->
+ LUser = jlib:tolower(User),
+ F = fun() ->
+ case mnesia:read({passwd, LUser}) of
+ [#passwd{password = Password}] ->
+ mnesia:delete({passwd, LUser}),
+ ok;
+ [_] ->
+ not_allowed;
+ _ ->
+ not_exists
+ end
+ end,
+ case mnesia:transaction(F) of
+ {atomic, Res} ->
+ Res;
+ _ ->
+ bad_request
+ end.
+