Configure user search consistent with other config strategies

This commit is contained in:
Dave Sims 2016-08-04 11:13:24 -05:00
Родитель cf59b4cea4
Коммит 0b22addb4b
2 изменённых файлов: 18 добавлений и 11 удалений

Просмотреть файл

@ -107,7 +107,7 @@ module GitHub
configure_search_strategy(options[:search_strategy])
# configure both the membership validator and the member search strategies
configure_user_search_strategy(options[:global_catalog_user_search])
configure_user_search_strategy(options[:user_search_strategy])
# enables instrumenting queries
@instrumentation_service = options[:instrumentation_service]
@ -292,10 +292,17 @@ module GitHub
end
end
def configure_user_search_strategy(global_catalog_user_search)
def configure_user_search_strategy(strategy)
@user_search_strategy = begin
if global_catalog_user_search && active_directory_capability?
GitHub::Ldap::UserSearch::ActiveDirectory.new(self)
case strategy.to_s
when "default"
GitHub::Ldap::UserSearch::Default.new(self)
when "global_catalog"
if active_directory_capability?
GitHub::Ldap::UserSearch::ActiveDirectory.new(self)
else
GitHub::Ldap::UserSearch::Default.new(self)
end
else
GitHub::Ldap::UserSearch::Default.new(self)
end

Просмотреть файл

@ -115,21 +115,21 @@ module GitHubLdapTestCases
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
end
def test_user_search_strategy_active_directory_when_configured_and_has_capability
def test_user_search_strategy_global_catalog_when_configured_and_has_capability
@ldap.stubs(:active_directory_capability?).returns(true)
@ldap.configure_user_search_strategy true
assert_equal GitHub::Ldap::UserSearch::ActiveDirectory, @ldap.user_search_strategy.class
@ldap.configure_user_search_strategy("global_catalog")
assert_kind_of GitHub::Ldap::UserSearch::ActiveDirectory, @ldap.user_search_strategy
end
def test_user_search_strategy_not_active_directory_without_capability
@ldap.stubs(:active_directory_capability?).returns(false)
@ldap.configure_user_search_strategy true
assert_equal GitHub::Ldap::UserSearch::Default, @ldap.user_search_strategy.class
@ldap.configure_user_search_strategy("global_catalog")
assert_kind_of GitHub::Ldap::UserSearch::Default, @ldap.user_search_strategy
end
def test_user_search_strategy_default_when_configured
@ldap.configure_user_search_strategy false
assert_equal GitHub::Ldap::UserSearch::Default, @ldap.user_search_strategy.class
@ldap.configure_user_search_strategy("default")
assert_kind_of GitHub::Ldap::UserSearch::Default, @ldap.user_search_strategy
end
def test_capabilities