active_directory 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.1
1
+ 1.5.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{active_directory}
8
- s.version = "1.5.1"
8
+ s.version = "1.5.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Adam T Kerr"]
12
- s.date = %q{2011-03-03}
12
+ s.date = %q{2011-03-29}
13
13
  s.description = %q{ActiveDirectory uses Net::LDAP to provide a means of accessing and modifying an Active Directory data store. This is a fork of the activedirectory gem.}
14
14
  s.email = %q{ajrkerr@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -38,7 +38,7 @@ Gem::Specification.new do |s|
38
38
  ]
39
39
  s.homepage = %q{http://github.com/ajrkerr/active_directory}
40
40
  s.require_paths = ["lib"]
41
- s.rubygems_version = %q{1.6.0}
41
+ s.rubygems_version = %q{1.6.2}
42
42
  s.summary = %q{An interface library for accessing Microsoft's Active Directory.}
43
43
 
44
44
  if s.respond_to? :specification_version then
@@ -305,7 +305,9 @@ module ActiveDirectory
305
305
  end
306
306
 
307
307
  def self.find_first(options)
308
- ad_obj = new(@@ldap.search(:filter => options[:filter], :base => options[:in]))
308
+ ldap_result = @@ldap.search(:filter => options[:filter], :base => options[:in])
309
+ return nil if ldap_result.empty?
310
+ ad_obj = new(ldap_result[0])
309
311
  @@cache[ad_obj.dn] = ad_obj unless ad_obj.instance_of? Base
310
312
  return ad_obj
311
313
  end
@@ -98,26 +98,13 @@ module ActiveDirectory
98
98
  # belong to this Group, or any of its subgroups, are returned.
99
99
  #
100
100
  def member_users(recursive = false)
101
- return [] unless has_members?
102
- if recursive
103
- if @member_users_r.nil?
104
- @member_users_r = []
105
- @entry.member.each do |member_dn|
106
- subuser = User.find_by_distinguishedName(member_dn)
107
- if subuser
108
- @member_users_r << subuser
109
- else
110
- subgroup = Group.find_by_distinguishedName(member_dn)
111
- if subgroup
112
- @member_users_r = @member_users_r.concat(subgroup.member_users(true))
113
- end
114
- end
115
- end
116
- end
117
- return @member_users_r
118
- else
119
- @member_users_non_r ||= User.find(:all, :distinguishedname => @entry.member).delete_if { |u| u.nil? }
120
- end
101
+ @member_users = User.find(:all, :distinguishedname => @entry.member).delete_if { |u| u.nil? }
102
+ if recursive then
103
+ self.member_groups.each do |group|
104
+ @member_users.concat(group.member_users(true))
105
+ end
106
+ end
107
+ return @member_users
121
108
  end
122
109
 
123
110
  #
@@ -130,22 +117,13 @@ module ActiveDirectory
130
117
  # belong to this Group, or any of its subgroups, are returned.
131
118
  #
132
119
  def member_groups(recursive = false)
133
- return [] unless has_members?
134
- if recursive
135
- if @member_groups_r.nil?
136
- @member_groups_r = []
137
- @entry.member.each do |member_dn|
138
- subgroup = Group.find_by_distinguishedName(member_dn)
139
- if subgroup
140
- @member_groups_r << subgroup
141
- @member_groups_r = @member_groups_r.concat(subgroup.member_groups(true))
142
- end
143
- end
144
- end
145
- return @member_groups_r
146
- else
147
- @member_groups_non_r ||= Group.find(:all, :distinguishedname => @entry.member).delete_if { |g| g.nil? }
148
- end
120
+ @member_groups ||= Group.find(:all, :distinguishedname => @entry.member).delete_if { |g| g.nil? }
121
+ if recursive then
122
+ self.member_groups.each do |group|
123
+ @member_groups.concat(group.member_groups(true))
124
+ end
125
+ end
126
+ return @member_groups
149
127
  end
150
128
 
151
129
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_directory
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-03-03 00:00:00.000000000 -05:00
12
+ date: 2011-03-29 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: net-ldap
17
- requirement: &2154136640 !ruby/object:Gem::Requirement
17
+ requirement: &2153031240 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 0.1.1
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2154136640
25
+ version_requirements: *2153031240
26
26
  description: ActiveDirectory uses Net::LDAP to provide a means of accessing and modifying
27
27
  an Active Directory data store. This is a fork of the activedirectory gem.
28
28
  email: ajrkerr@gmail.com
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  version: '0'
72
72
  requirements: []
73
73
  rubyforge_project:
74
- rubygems_version: 1.6.0
74
+ rubygems_version: 1.6.2
75
75
  signing_key:
76
76
  specification_version: 3
77
77
  summary: An interface library for accessing Microsoft's Active Directory.