active_directory 1.2.2 → 1.2.4
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 +1 -1
- data/active_directory.gemspec +2 -2
- data/lib/active_directory.rb +8 -5
- data/lib/active_directory/base.rb +11 -8
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.4
|
data/active_directory.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{active_directory}
|
8
|
-
s.version = "1.2.
|
8
|
+
s.version = "1.2.4"
|
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-02-
|
12
|
+
s.date = %q{2011-02-18}
|
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 = [
|
data/lib/active_directory.rb
CHANGED
@@ -47,11 +47,11 @@ module ActiveDirectory
|
|
47
47
|
@@special_fields = {
|
48
48
|
|
49
49
|
#All objects in the AD
|
50
|
-
:Base => {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
},
|
50
|
+
# :Base => {
|
51
|
+
# :objectguid => :binary,
|
52
|
+
# :whencreated => :date,
|
53
|
+
# :whenchanged => :date
|
54
|
+
# },
|
55
55
|
|
56
56
|
#User objects
|
57
57
|
:User => {
|
@@ -68,6 +68,9 @@ module ActiveDirectory
|
|
68
68
|
|
69
69
|
#Group objects
|
70
70
|
:Group => {
|
71
|
+
:objectguid => :binary,
|
72
|
+
:whencreated => :date,
|
73
|
+
:whenchanged => :date,
|
71
74
|
:objectsid => :binary,
|
72
75
|
},
|
73
76
|
}
|
@@ -150,10 +150,10 @@ module ActiveDirectory
|
|
150
150
|
#I'm sure there's a better way to do this
|
151
151
|
#Grab the first one, then do the rest
|
152
152
|
key, value = hash.shift
|
153
|
-
f = Net::LDAP::Filter.eq(key, value.to_s)
|
153
|
+
f = Net::LDAP::Filter.eq(key, encode_field(key, value).to_s)
|
154
154
|
|
155
155
|
hash.each do |key, value|
|
156
|
-
f = f & Net::LDAP::Filter.eq(key, value.to_s)
|
156
|
+
f = f & Net::LDAP::Filter.eq(key, encode_field(key, value).to_s)
|
157
157
|
end
|
158
158
|
|
159
159
|
return f
|
@@ -406,21 +406,24 @@ module ActiveDirectory
|
|
406
406
|
end
|
407
407
|
end
|
408
408
|
|
409
|
-
|
409
|
+
##
|
410
|
+
# Grabs the field type depending on the class it is called from
|
411
|
+
# Takes the field name as a parameter
|
412
|
+
def self.get_field_type(name)
|
410
413
|
#Extract class name
|
411
|
-
klass = self.
|
412
|
-
type = ::ActiveDirectory.special_fields[klass.classify.to_sym][name.downcase.to_sym]
|
414
|
+
klass = self.name[/.*::(.*)/, 1]
|
415
|
+
type = ::ActiveDirectory.special_fields[klass.classify.to_sym][name.to_s.downcase.to_sym]
|
413
416
|
type.to_s.classify unless type.nil?
|
414
417
|
end
|
415
418
|
|
416
|
-
def decode_field(name, value)
|
419
|
+
def self.decode_field(name, value)
|
417
420
|
#Extract class name
|
418
421
|
type = get_field_type name
|
419
422
|
return ::ActiveDirectory::FieldType::const_get(type).decode(value) if !type.nil? and ::ActiveDirectory::FieldType::const_defined? type
|
420
423
|
return value
|
421
424
|
end
|
422
425
|
|
423
|
-
def encode_field(name, value)
|
426
|
+
def self.encode_field(name, value)
|
424
427
|
type = get_field_type name
|
425
428
|
return ::ActiveDirectory::FieldType::const_get(type).encode(value) if !type.nil? and ::ActiveDirectory::FieldType::const_defined? type
|
426
429
|
return value
|
@@ -441,7 +444,7 @@ module ActiveDirectory
|
|
441
444
|
value = @entry.send(name.to_sym)
|
442
445
|
value = value.first if value.kind_of?(Array) && value.size == 1
|
443
446
|
value = value.to_s if value.nil? || value.size == 1
|
444
|
-
return decode_field(name, value)
|
447
|
+
return self.class.decode_field(name, value)
|
445
448
|
rescue NoMethodError
|
446
449
|
return nil
|
447
450
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_directory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 4
|
10
|
+
version: 1.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Adam T Kerr
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-18 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|