summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-06-10 12:01:15 +0200
committerBadlop <badlop@process-one.net>2011-05-30 11:00:21 +0200
commit0874b93e7ca589b51d0250cd7ec511c4b394beb6 (patch)
treebaa0e83c4a3082f12b41f6f516c3eceed32cd1a4 /src
parentAdd link in the Backup page to the Guide (diff)
Support anonymous accounts in Shared Roster @all@ directive (EJAB-1264)
With this change, logged anonymous accounts are considered to be registered.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_auth_anonymous.erl5
-rw-r--r--src/mod_shared_roster.erl4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ejabberd_auth_anonymous.erl b/src/ejabberd_auth_anonymous.erl
index b0e53ca6..787d96b4 100644
--- a/src/ejabberd_auth_anonymous.erl
+++ b/src/ejabberd_auth_anonymous.erl
@@ -143,6 +143,7 @@ register_connection(SID, #jid{luser = LUser, lserver = LServer}, Info) ->
AuthModule = xml:get_attr_s(auth_module, Info),
case AuthModule == ?MODULE of
true ->
+ ejabberd_hooks:run(register_user, LServer, [LUser, LServer]),
US = {LUser, LServer},
mnesia:sync_dirty(
fun() -> mnesia:write(#anonymous{us = US, sid=SID})
@@ -215,8 +216,8 @@ try_register(_User, _Server, _Password) ->
dirty_get_registered_users() ->
[].
-get_vh_registered_users(_Server) ->
- [].
+get_vh_registered_users(Server) ->
+ [{U, S} || {U, S, _R} <- ejabberd_sm:get_vh_session_list(Server)].
%% Return password of permanent user or false for anonymous users
diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl
index 14879cce..8faf3528 100644
--- a/src/mod_shared_roster.erl
+++ b/src/mod_shared_roster.erl
@@ -93,6 +93,8 @@ start(Host, _Opts) ->
?MODULE, unset_presence, 50),
ejabberd_hooks:add(register_user, Host,
?MODULE, register_user, 50),
+ ejabberd_hooks:add(anonymous_purge_hook, Host,
+ ?MODULE, remove_user, 50),
ejabberd_hooks:add(remove_user, Host,
?MODULE, remove_user, 50).
%%ejabberd_hooks:add(remove_user, Host,
@@ -121,6 +123,8 @@ stop(Host) ->
?MODULE, unset_presence, 50),
ejabberd_hooks:delete(register_user, Host,
?MODULE, register_user, 50),
+ ejabberd_hooks:delete(anonymous_purge_hook, Host,
+ ?MODULE, remove_user, 50),
ejabberd_hooks:delete(remove_user, Host,
?MODULE, remove_user, 50).
%%ejabberd_hooks:delete(remove_user, Host,