debian-mirror-gitlab/lib/gitlab/ldap/access.rb

41 lines
860 B
Ruby
Raw Normal View History

2014-09-02 18:07:02 +05:30
module Gitlab
module LDAP
class Access
attr_reader :adapter
def self.open(&block)
Gitlab::LDAP::Adapter.open do |adapter|
block.call(self.new(adapter))
end
end
def self.allowed?(user)
self.open do |access|
if access.allowed?(user)
# GitLab EE LDAP code goes here
user.last_credential_check_at = Time.now
user.save
true
else
false
end
end
end
def initialize(adapter=nil)
@adapter = adapter
end
def allowed?(user)
if Gitlab::LDAP::Person.find_by_dn(user.extern_uid, adapter)
!Gitlab::LDAP::Person.active_directory_disabled?(user.extern_uid, adapter)
else
false
end
rescue
false
end
end
end
end