active_directory 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
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.