diff --git a/lib/gitlab/ldap/access.rb b/lib/gitlab/ldap/access.rb index 518955bd24..5a4add79c8 100644 --- a/lib/gitlab/ldap/access.rb +++ b/lib/gitlab/ldap/access.rb @@ -31,13 +31,13 @@ module Gitlab return true unless Gitlab.config.ldap['group_base'].present? # Get LDAP user entry - ldap_user = Gitlab::LDAP::Person.find_by_dn(user.extern_uid) + ldap_user = Gitlab::LDAP::Person.find_by_dn(user.extern_uid, adapter) # Get all GitLab groups with activated LDAP groups = ::Group.where('ldap_cn IS NOT NULL') # Get LDAP groups based on cn from GitLab groups - ldap_groups = groups.pluck(:ldap_cn).map { |cn| Gitlab::LDAP::Group.find_by_cn(cn) } + ldap_groups = groups.pluck(:ldap_cn).map { |cn| Gitlab::LDAP::Group.find_by_cn(cn, adapter) } ldap_groups = ldap_groups.compact.uniq # Iterate over ldap groups and check user membership diff --git a/lib/gitlab/ldap/group.rb b/lib/gitlab/ldap/group.rb index 61cab8393c..b7af14e225 100644 --- a/lib/gitlab/ldap/group.rb +++ b/lib/gitlab/ldap/group.rb @@ -7,8 +7,9 @@ module Gitlab module LDAP class Group - def self.find_by_cn(cn) - Gitlab::LDAP::Adapter.new.group(cn) + def self.find_by_cn(cn, adapter=nil) + adapter ||= Gitlab::LDAP::Adapter.new + adapter.group(cn) end def initialize(entry)