diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-02-21 19:52:15 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-02-21 19:52:15 +0000 |
commit | c18826ad53478441d9757292c02985ce342a230e (patch) | |
tree | d43be40fc615a6531428a84597d96edc007b5763 /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.erl | 27 |
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. + |