aboutsummaryrefslogtreecommitdiff
path: root/src/mod_shared_roster_ldap.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2011-09-19 16:58:55 +1000
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2011-09-19 17:03:36 +1000
commitf3f80ea0ea10cca5ae62c92161a982cbf47ccd71 (patch)
treee43048025b861ec4f48e58128c8825576191d806 /src/mod_shared_roster_ldap.erl
parentUse NS_XBOSH instead of NS_BOSH (thanks to Janusz Dziemidowicz) (diff)
New option support: ldap_deref_aliases (EJAB-639)
Conflicts: src/ejabberd_auth_ldap.erl
Diffstat (limited to 'src/mod_shared_roster_ldap.erl')
-rw-r--r--src/mod_shared_roster_ldap.erl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mod_shared_roster_ldap.erl b/src/mod_shared_roster_ldap.erl
index 0e1ce887d..e5aa4c64e 100644
--- a/src/mod_shared_roster_ldap.erl
+++ b/src/mod_shared_roster_ldap.erl
@@ -63,6 +63,7 @@
base,
password,
uid,
+ deref_aliases,
group_attr,
group_desc,
user_desc,
@@ -330,6 +331,7 @@ eldap_search(State, FilterParseArgs, AttributesList) ->
[{base, State#state.base},
{filter, EldapFilter},
{timeout, ?LDAP_SEARCH_TIMEOUT},
+ {deref_aliases, State#state.deref_aliases},
{attributes, AttributesList}]) of
#eldap_search_result{entries = Es} ->
%% A result with entries. Return their list.
@@ -671,6 +673,15 @@ parse_options(Host, Opts) ->
"" -> GroupSubFilter;
_ -> "(&" ++ GroupSubFilter ++ ConfigFilter ++ ")"
end,
+ DerefAliases = case gen_mod:get_opt(deref_aliases, Opts, undefined) of
+ undefined ->
+ case ejabberd_config:get_local_option(
+ {deref_aliases, Host}) of
+ undefined -> never;
+ D -> D
+ end;
+ D -> D
+ end,
#state{host = Host,
eldap_id = Eldap_ID,
servers = LDAPServers,
@@ -684,6 +695,7 @@ parse_options(Host, Opts) ->
base = LDAPBase,
password = Password,
uid = UIDAttr,
+ deref_aliases = DerefAliases,
group_attr = GroupAttr,
group_desc = GroupDesc,
user_desc = UserDesc,