Module: Jackad

Defined in:
lib/jackad/config.rb,
lib/jackad/jackad.rb,
lib/jackad/version.rb,
lib/jackad/net/ldap.rb,
lib/jackad/ad_connect.rb

Defined Under Namespace

Modules: Net Classes: AdConnect, Config, ConnectionRefused, RecordNotFound

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.credentials_valid?(username, password) ⇒ Boolean

Check validity of username and password Returns true or false

Returns:

  • (Boolean)


7
8
9
10
11
# File 'lib/jackad/jackad.rb', line 7

def self.credentials_valid?(username, password)
  ad = AdConnect.new
  ad.ldap.auth(username, password)
  ad.ldap.bind
end

.entry_exists?(username) ⇒ Boolean

Check user existance by configured attribute Returns true or false

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/jackad/jackad.rb', line 15

def self.entry_exists?(username)
  ad = AdConnect.new
  filter = Net::LDAP::Filter.eq(ad.attribute.to_s, username)
  ad.ldap.search(filter: filter, size: 1).size > 0 ? true : false
end

.entry_valid?(username) ⇒ Boolean

Check user validity by configured attribute, useraccountcontrol flags and pwdlastset attribute Returns true or false

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
# File 'lib/jackad/jackad.rb', line 23

def self.entry_valid?(username)
  ad = AdConnect.new
  filter_by_attr = Net::LDAP::Filter.eq(ad.attribute.to_s, username)
  filter_by_uac = ~Net::LDAP::Filter.construct('useraccountcontrol:1.2.840.113556.1.4.803:=2')
  filter_by_pass = ~Net::LDAP::Filter.eq('pwdlastset', '0')
  filter = filter_by_attr & filter_by_uac & filter_by_pass
  ad.ldap.search(filter: filter, size: 1).size > 0 ? true : false
end