Commit a754f0b2 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Add LDAP::Person#ad_disabled?

Check the bit for disabled Active Directory users. The filter is based
on http://ctogonewild.com/2009/09/03/bitmask-searches-in-ldap/ .
parent d54133b0
module Gitlab module Gitlab
module LDAP module LDAP
class Person class Person
AD_USER_DISABLED = Net::LDAP::Filter.ex("userAccountControl:1.2.840.113556.1.4.803", 2)
def self.find_by_uid(uid, adapter=nil) def self.find_by_uid(uid, adapter=nil)
adapter ||= Gitlab::LDAP::Adapter.new adapter ||= Gitlab::LDAP::Adapter.new
adapter.user(config.uid, uid) adapter.user(config.uid, uid)
...@@ -11,6 +13,11 @@ module Gitlab ...@@ -11,6 +13,11 @@ module Gitlab
adapter.user('dn', dn) adapter.user('dn', dn)
end end
def self.ad_disabled?(dn, adapter=nil)
adapter ||= Gitlab::LDAP::Adapter.new
adapter.dn_matches_filter?(dn, AD_USER_DISABLED)
end
def initialize(entry) def initialize(entry)
Rails.logger.debug { "Instantiating #{self.class.name} with LDIF:\n#{entry.to_ldif}" } Rails.logger.debug { "Instantiating #{self.class.name} with LDIF:\n#{entry.to_ldif}" }
@entry = entry @entry = entry
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment