Add provider context to Ldap::Access
This commit is contained in:
parent
0e276f9cbf
commit
e23a26aea0
|
|
@ -1,16 +1,21 @@
|
|||
# LDAP authorization model
|
||||
#
|
||||
# * Check if we are allowed access (not blocked)
|
||||
# * Update authorizations and associations
|
||||
#
|
||||
module Gitlab
|
||||
module LDAP
|
||||
class Access
|
||||
attr_reader :adapter
|
||||
attr_reader :adapter, :provider
|
||||
|
||||
def self.open(&block)
|
||||
Gitlab::LDAP::Adapter.open do |adapter|
|
||||
block.call(self.new(adapter))
|
||||
def self.open(provider, &block)
|
||||
Gitlab::LDAP::Adapter.open(provider) do |adapter|
|
||||
block.call(self.new(provider, adapter))
|
||||
end
|
||||
end
|
||||
|
||||
def self.allowed?(user)
|
||||
self.open do |access|
|
||||
self.open(user.provider) do |access|
|
||||
if access.allowed?(user)
|
||||
access.update_permissions(user)
|
||||
access.update_email(user)
|
||||
|
|
@ -23,7 +28,8 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def initialize(adapter=nil)
|
||||
def initialize(provider, adapter=nil)
|
||||
@provider = provider
|
||||
@adapter = adapter
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ module Gitlab
|
|||
def find_by_uid_and_provider
|
||||
# LDAP distinguished name is case-insensitive
|
||||
model.
|
||||
where(provider: auth_hash.provider).
|
||||
where(provider: [auth_hash.provider, :ldap]).
|
||||
where('lower(extern_uid) = ?', auth_hash.uid.downcase).last
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue