From 41a0eae0bd1b70a15225c8ed95fa8c86115191c6 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Wed, 4 Apr 2012 20:37:43 +1000 Subject: ODBC support for mod_shared_roster --- src/acl.erl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/acl.erl') diff --git a/src/acl.erl b/src/acl.erl index 835577863..dd7c441de 100644 --- a/src/acl.erl +++ b/src/acl.erl @@ -181,9 +181,11 @@ match_acl(ACL, JID, Host) -> lists:member(Server, ?MYHOSTS))) andalso is_regexp_match(User, UR); {shared_group, G} -> - mod_shared_roster:is_user_in_group({User, Server}, G, Host); + Mod = loaded_shared_roster_module(Host), + Mod:is_user_in_group({User, Server}, G, Host); {shared_group, G, H} -> - mod_shared_roster:is_user_in_group({User, Server}, G, H); + Mod = loaded_shared_roster_module(H), + Mod:is_user_in_group({User, Server}, G, H); {user_regexp, UR, S} -> (S == Server) andalso is_regexp_match(User, UR); @@ -238,4 +240,10 @@ is_regexp_match(String, RegExp) -> is_glob_match(String, Glob) -> is_regexp_match(String, ejabberd_regexp:sh_to_awk(Glob)). - +loaded_shared_roster_module(Host) -> + case {gen_mod:is_loaded(Host, mod_shared_roster_odbc), + gen_mod:is_loaded(Host, mod_shared_roster_ldap)} of + {true, _} -> mod_shared_roster_odbc; + {_, true} -> mod_shared_roster_ldap; + _ -> mod_shared_roster + end. -- cgit v1.2.3