aboutsummaryrefslogtreecommitdiff
path: root/src/mod_shared_roster_ldap.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-30 19:01:47 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-30 19:01:47 +0300
commitfddd6110e00df12c99a20a2cc9d074f5f4f1f965 (patch)
tree366575b855f1b2013db7eeb02ecb213f81c98c1f /src/mod_shared_roster_ldap.erl
parentMerge branch 'new-option-validation' (diff)
Don't validate an option in gen_mod:get*opt() functions
The changes are very similar to those from previous commit: * Now there is no need to pass validating function in gen_mod:get_opt() and gen_mod:get_module_opt() functions, because the modules' configuration keeps already validated values. * New functions gen_mod:get_opt/2 and gen_mod:get_module_opt/3 are introduced. * Functions gen_mod:get_opt/4 and get_module_opt/5 are deprecated. If the functions are still called, the "function" argument is simply ignored. * Validating callback Mod:listen_opt_type/1 is introduced to validate listening options at startup.
Diffstat (limited to 'src/mod_shared_roster_ldap.erl')
-rw-r--r--src/mod_shared_roster_ldap.erl56
1 files changed, 13 insertions, 43 deletions
diff --git a/src/mod_shared_roster_ldap.erl b/src/mod_shared_roster_ldap.erl
index 8a2daf9df..08220f7ec 100644
--- a/src/mod_shared_roster_ldap.erl
+++ b/src/mod_shared_roster_ldap.erl
@@ -468,44 +468,18 @@ get_user_part_re(String, Pattern) ->
parse_options(Host, Opts) ->
Eldap_ID = misc:atom_to_binary(gen_mod:get_module_proc(Host, ?MODULE)),
Cfg = eldap_utils:get_config(Host, Opts),
- GroupAttr = gen_mod:get_opt(ldap_groupattr, Opts,
- fun iolist_to_binary/1,
- <<"cn">>),
- GroupDesc = gen_mod:get_opt(ldap_groupdesc, Opts,
- fun iolist_to_binary/1,
- GroupAttr),
- UserDesc = gen_mod:get_opt(ldap_userdesc, Opts,
- fun iolist_to_binary/1,
- <<"cn">>),
- UserUID = gen_mod:get_opt(ldap_useruid, Opts,
- fun iolist_to_binary/1,
- <<"cn">>),
- UIDAttr = gen_mod:get_opt(ldap_memberattr, Opts,
- fun iolist_to_binary/1,
- <<"memberUid">>),
- UIDAttrFormat = gen_mod:get_opt(ldap_memberattr_format, Opts,
- fun iolist_to_binary/1,
- <<"%u">>),
- UIDAttrFormatRe = gen_mod:get_opt(ldap_memberattr_format_re, Opts,
- fun(S) ->
- Re = iolist_to_binary(S),
- {ok, MP} = re:compile(Re),
- MP
- end, <<"">>),
- AuthCheck = gen_mod:get_opt(ldap_auth_check, Opts,
- fun(on) -> true;
- (off) -> false;
- (false) -> false;
- (true) -> true
- end, true),
- ConfigFilter = gen_mod:get_opt({ldap_filter, Host}, Opts,
- fun eldap_utils:check_filter/1, <<"">>),
- ConfigUserFilter = gen_mod:get_opt({ldap_ufilter, Host}, Opts,
- fun eldap_utils:check_filter/1, <<"">>),
- ConfigGroupFilter = gen_mod:get_opt({ldap_gfilter, Host}, Opts,
- fun eldap_utils:check_filter/1, <<"">>),
- RosterFilter = gen_mod:get_opt({ldap_rfilter, Host}, Opts,
- fun eldap_utils:check_filter/1, <<"">>),
+ GroupAttr = gen_mod:get_opt(ldap_groupattr, Opts, <<"cn">>),
+ GroupDesc = gen_mod:get_opt(ldap_groupdesc, Opts, GroupAttr),
+ UserDesc = gen_mod:get_opt(ldap_userdesc, Opts, <<"cn">>),
+ UserUID = gen_mod:get_opt(ldap_useruid, Opts, <<"cn">>),
+ UIDAttr = gen_mod:get_opt(ldap_memberattr, Opts, <<"memberUid">>),
+ UIDAttrFormat = gen_mod:get_opt(ldap_memberattr_format, Opts, <<"%u">>),
+ UIDAttrFormatRe = gen_mod:get_opt(ldap_memberattr_format_re, Opts, <<"">>),
+ AuthCheck = gen_mod:get_opt(ldap_auth_check, Opts, true),
+ ConfigFilter = gen_mod:get_opt({ldap_filter, Host}, Opts, <<"">>),
+ ConfigUserFilter = gen_mod:get_opt({ldap_ufilter, Host}, Opts, <<"">>),
+ ConfigGroupFilter = gen_mod:get_opt({ldap_gfilter, Host}, Opts, <<"">>),
+ RosterFilter = gen_mod:get_opt({ldap_rfilter, Host}, Opts, <<"">>),
SubFilter = <<"(&(", UIDAttr/binary, "=",
UIDAttrFormat/binary, ")(", GroupAttr/binary, "=%g))">>,
UserSubFilter = case ConfigUserFilter of
@@ -566,18 +540,14 @@ init_cache(Host, Opts) ->
UseCache.
use_cache(Host, Opts) ->
- gen_mod:get_opt(use_cache, Opts, mod_opt_type(use_cache),
- ejabberd_config:use_cache(Host)).
+ gen_mod:get_opt(use_cache, Opts, ejabberd_config:use_cache(Host)).
cache_opts(Host, Opts) ->
MaxSize = gen_mod:get_opt(cache_size, Opts,
- mod_opt_type(cache_size),
ejabberd_config:cache_size(Host)),
CacheMissed = gen_mod:get_opt(cache_missed, Opts,
- mod_opt_type(cache_missed),
ejabberd_config:cache_missed(Host)),
LifeTime = case gen_mod:get_opt(cache_life_time, Opts,
- mod_opt_type(cache_life_time),
ejabberd_config:cache_life_time(Host)) of
infinity -> infinity;
I -> timer:seconds(I)