ad_search 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ad_search.gemspec +1 -1
- data/lib/ad_search.rb +10 -11
- data/lib/ad_search/version.rb +1 -1
- metadata +6 -6
data/ad_search.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.homepage = ""
|
11
11
|
s.summary = %q{Search Active Directory}
|
12
12
|
s.description = %q{Allows you to connect to and search your Active Directory system for users that have
|
13
|
-
not been disabled.}
|
13
|
+
not been disabled. Returns a hash.}
|
14
14
|
|
15
15
|
s.rubyforge_project = "ad_search"
|
16
16
|
|
data/lib/ad_search.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
+
require 'net-ldap'
|
2
|
+
|
1
3
|
require "ad_search/version"
|
2
4
|
|
5
|
+
# Search Active Directory and get a hash in return
|
3
6
|
module AdSearch
|
4
|
-
# Search Active Directory and get a hash in return
|
5
|
-
|
6
|
-
def initialize(user, pw, domain, host, base)
|
7
|
-
@ad_connection = connect_to_ad(user, pw, domain, host, base)
|
8
|
-
end
|
9
7
|
|
10
8
|
# Connection to Active Directory
|
11
|
-
def connect_to_ad(username, password, domain, host, base)
|
9
|
+
def self.connect_to_ad(username, password, domain, host, base)
|
12
10
|
ldap = Net::LDAP.new :host => host,
|
13
11
|
:port => 389,
|
14
12
|
:base => base,
|
@@ -24,7 +22,7 @@ module AdSearch
|
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
27
|
-
def search_active_users_by_username(search_term, treebase)
|
25
|
+
def self.search_active_users_by_username(ad_connection, search_term, treebase)
|
28
26
|
users = Hash.new
|
29
27
|
|
30
28
|
#Create a filter based on the username
|
@@ -35,7 +33,7 @@ module AdSearch
|
|
35
33
|
joined_filter = Net::LDAP::Filter.join(filter, filter2)
|
36
34
|
|
37
35
|
count = 0
|
38
|
-
|
36
|
+
ad_connection.search(:base => treebase, :filter => joined_filter) do |entry|
|
39
37
|
if active_account?(entry)
|
40
38
|
username = entry.sAMAccountName.to_s[2..-3]
|
41
39
|
#Split the first name and last name and remove un-needed characters
|
@@ -78,17 +76,18 @@ module AdSearch
|
|
78
76
|
return users
|
79
77
|
end
|
80
78
|
|
81
|
-
#Microsoft Active
|
79
|
+
#Microsoft Active Directories way of keeping track of time: BIGEPOCH (01/01/1970) is 116444916000000000 "100 nanosecond intervals since 01/01/1601"
|
82
80
|
BIGEPOCH = 116444916000000000
|
83
|
-
def active_account?(ad_object)
|
81
|
+
def self.active_account?(ad_object)
|
84
82
|
#See if account is disabled or the account is expired
|
85
83
|
tmpuac = ad_object.userAccountControl[0].to_i
|
86
84
|
if tmpuac & 2 == 2
|
87
85
|
return false
|
88
|
-
elsif ad_object.accountExpires[0].to_i != 0 and Time.now > Time.at((ad_object.accountExpires[0].to_i - BIGEPOCH) / 10000000) #Microsoft
|
86
|
+
elsif ad_object.accountExpires[0].to_i != 0 and Time.now > Time.at((ad_object.accountExpires[0].to_i - BIGEPOCH) / 10000000) #Microsoft to epoch time
|
89
87
|
return false
|
90
88
|
else
|
91
89
|
return true
|
92
90
|
end
|
93
91
|
end
|
92
|
+
|
94
93
|
end
|
data/lib/ad_search/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ad_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2013-04-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &25423128 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *25423128
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: net-ldap
|
27
|
-
requirement: &
|
27
|
+
requirement: &25422648 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,9 +32,9 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *25422648
|
36
36
|
description: ! "Allows you to connect to and search your Active Directory system for
|
37
|
-
users that have\n not been disabled."
|
37
|
+
users that have\n not been disabled. Returns a hash."
|
38
38
|
email:
|
39
39
|
- neilhoff@gmail.com
|
40
40
|
executables: []
|