From e989d41d500de22f7e6a2f8acc49c7d4133ef896 Mon Sep 17 00:00:00 2001 From: Pablo Polvorin Date: Fri, 20 Feb 2009 15:30:16 +0000 Subject: [PATCH] "remove_user" hook actualized to expect binary arguments. Fix webadmin code that performs addition / removal of users. SVN Revision: 1892 --- ChangeLog | 10 ++++++++++ src/ejabberd_auth.erl | 8 +++++--- src/mod_offline_odbc.erl | 4 ++-- src/mod_privacy_odbc.erl | 2 +- src/mod_private_odbc.erl | 4 ++-- src/mod_roster_odbc.erl | 4 ++-- src/mod_vcard_odbc.erl | 6 +++--- src/web/ejabberd_web_admin.erl | 4 ++-- 8 files changed, 27 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8356f29e..7dcc3d4c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-02-20 Pablo Polvorin + + * src/mod_offline_odbc.erl, src/mod_privacy_odbc.erl, + src/ejabberd_auth.erl, src/mod_vcard_odbc.erl, + src/mod_private_odbc.erl, src/mod_roster_odbc.erl: remove_user hook + actualized to expect binary arguments. + + * src/web/ejabberd_web_admin.erl: Fix add / remove users. + + 2009-02-19 Christophe Romain * src/mod_pubsub/mod_pubsub.erl: fix nodetree plugin resolver diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index 3e5152be5..623fb7fd5 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -198,7 +198,7 @@ try_register(User, Server, Password) end, {error, not_allowed}, auth_modules(Server)), case Res of {atomic, ok} -> - ejabberd_hooks:run(register_user, Server, + ejabberd_hooks:run(register_user, list_to_binary(Server), [User, Server]), {atomic, ok}; _ -> Res @@ -370,7 +370,8 @@ remove_user(User, Server) when is_list(User), is_list(Server) -> M:remove_user(User, Server) end, auth_modules(Server)), case R of - ok -> ejabberd_hooks:run(remove_user, jlib:nameprep(Server), [User, Server]); + ok -> ejabberd_hooks:run(remove_user, list_to_binary(exmpp_stringprep:nameprep(Server)), + [list_to_binary(User), list_to_binary(Server)]); _ -> none end, R. @@ -393,7 +394,8 @@ remove_user(User, Server, Password) M:remove_user(User, Server, Password) end, error, auth_modules(Server)), case R of - ok -> ejabberd_hooks:run(remove_user, jlib:nameprep(Server), [User, Server]); + ok -> ejabberd_hooks:run(remove_user, list_to_binary(exmpp_stringprep:nameprep(Server)), + [list_to_binary(User), list_to_binary(Server)]); _ -> none end, R. diff --git a/src/mod_offline_odbc.erl b/src/mod_offline_odbc.erl index 77d4d806f..047388e57 100644 --- a/src/mod_offline_odbc.erl +++ b/src/mod_offline_odbc.erl @@ -279,8 +279,8 @@ pop_offline_messages(Ls, User, Server) remove_user(User, Server) when is_binary(User), is_binary(Server) -> try - LUser = exmpp_stringprep:nodeprep(User), - LServer = exmpp_stringprep:nameprep(Server), + LUser = binary_to_list(exmpp_stringprep:nodeprep(User)), + LServer = binary_to_list(exmpp_stringprep:nameprep(Server)), Username = ejabberd_odbc:escape(LUser), odbc_queries:del_spool_msg(LServer, Username) catch diff --git a/src/mod_privacy_odbc.erl b/src/mod_privacy_odbc.erl index 5aded06af..67c7190ef 100644 --- a/src/mod_privacy_odbc.erl +++ b/src/mod_privacy_odbc.erl @@ -679,7 +679,7 @@ is_type_match(Type, Value, JID, Subscription, Groups) -> remove_user(User, Server) -> LUser = exmpp_stringprep:nodeprep(User), LServer = exmpp_stringprep:nameprep(Server), - sql_del_privacy_lists(LUser, LServer). + sql_del_privacy_lists(binary_to_list(LUser), binary_to_list(LServer)). updated_list(_, diff --git a/src/mod_private_odbc.erl b/src/mod_private_odbc.erl index a52bb3399..84deae535 100644 --- a/src/mod_private_odbc.erl +++ b/src/mod_private_odbc.erl @@ -171,8 +171,8 @@ end. remove_user(User, Server) when is_binary(User), is_binary(Server) -> try - LUser = exmpp_stringprep:nodeprep(User), - LServer = exmpp_stringprep:nameprep(Server), + LUser = binary_to_list(exmpp_stringprep:nodeprep(User)), + LServer = binary_to_list(exmpp_stringprep:nameprep(Server)), Username = ejabberd_odbc:escape(LUser), odbc_queries:del_user_private_storage(LServer, Username) catch diff --git a/src/mod_roster_odbc.erl b/src/mod_roster_odbc.erl index e56b70a77..a4abb072c 100644 --- a/src/mod_roster_odbc.erl +++ b/src/mod_roster_odbc.erl @@ -627,8 +627,8 @@ in_auto_reply(_, _, _) -> none. remove_user(User, Server) when is_binary(User), is_binary(Server) -> try - LUser = exmpp_stringprep:nodeprep(User), - LServer = exmpp_stringprep:nameprep(Server), + LUser = binary_to_list(exmpp_stringprep:nodeprep(User)), + LServer = binary_to_list(exmpp_stringprep:nameprep(Server)), Username = ejabberd_odbc:escape(LUser), odbc_queries:del_user_roster_t(LServer, Username), ok diff --git a/src/mod_vcard_odbc.erl b/src/mod_vcard_odbc.erl index d2db1f9e0..45531bd95 100644 --- a/src/mod_vcard_odbc.erl +++ b/src/mod_vcard_odbc.erl @@ -612,9 +612,9 @@ make_val(Match, Field, Val) -> % mnesia:transaction(F). -remove_user(User, Server) when is_binary(User), is_binary(server) -> - LUser = exmpp_stringprep:nodeprep(User), - LServer = exmpp_stringprep:nameprep(Server), +remove_user(User, Server) when is_binary(User), is_binary(Server) -> + LUser = binary_to_list(exmpp_stringprep:nodeprep(User)), + LServer = binary_to_list(exmpp_stringprep:nameprep(Server)), Username = ejabberd_odbc:escape(LUser), ejabberd_odbc:sql_transaction( LServer, diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl index c870cef56..fe5ea042c 100644 --- a/src/web/ejabberd_web_admin.erl +++ b/src/web/ejabberd_web_admin.erl @@ -1364,8 +1364,8 @@ list_users_parse_query(Query, Host) -> lists:keysearch("newuserpassword", 1, Query), try JID = exmpp_jid:parse_jid(Username++"@"++Host), - User = exmpp_jid:node(JID), - Server = exmpp_jid:domain(JID), + User = exmpp_jid:node_as_list(JID), + Server = exmpp_jid:domain_as_list(JID), case ejabberd_auth:try_register(User, Server, Password) of {error, _Reason} -> error;