ldap_fluff 0.3.7 → 0.4.0
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.
- checksums.yaml +4 -4
- data/lib/ldap_fluff/generic_member_service.rb +2 -1
- data/test/ad_member_services_test.rb +11 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54e77169e6958e3e3c2abaa3963fb82e2e897d90
|
4
|
+
data.tar.gz: 393ddfd24ecb0f28f0d301b3edb30a8788adebb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e90e3e250a2385281f112968328d60b8039dd7c701c9a0d866f77962022bd68a1e57c82229c396e93617fc12d4ca51ec0d38aaa7e32b15ab4f990c7dca83d21
|
7
|
+
data.tar.gz: b7e6b676a1b16506271951f7a7f299b6f2e4bb7ebe89fffd79925f4e77c67dd690f6bbc5b2005066ccbe08a4fceea7706dce09cd0dc2304ab27d5ee3874ceb3f
|
@@ -22,8 +22,9 @@ class LdapFluff::GenericMemberService
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def find_by_dn(dn)
|
25
|
-
entry, base = dn.split(
|
25
|
+
entry, base = dn.split(/(?<!\\),/, 2)
|
26
26
|
entry_attr, entry_value = entry.split('=', 2)
|
27
|
+
entry_value = entry_value.gsub('\,', ',')
|
27
28
|
user = @ldap.search(:filter => name_filter(entry_value, entry_attr), :base => base)
|
28
29
|
raise self.class::UIDNotFoundException if (user.nil? || user.empty?)
|
29
30
|
user
|
@@ -120,6 +120,17 @@ class TestADMemberService < MiniTest::Test
|
|
120
120
|
@ldap.verify
|
121
121
|
end
|
122
122
|
|
123
|
+
def test_find_by_dn_comma_in_cn
|
124
|
+
# In at least one AD installation, users who have commas in their CNs are
|
125
|
+
# returned by the server in answer to a group membership query with
|
126
|
+
# backslashes before the commas in the CNs. Such escaped commas should not
|
127
|
+
# be used when splitting the DN.
|
128
|
+
@ldap.expect(:search, [:result], [:filter => Net::LDAP::Filter.eq('cn', 'Bar, Foo'), :base => 'dc=example,dc=com'])
|
129
|
+
@adms.ldap = @ldap
|
130
|
+
assert_equal([:result], @adms.find_by_dn('cn=Bar\, Foo,dc=example,dc=com'))
|
131
|
+
@ldap.verify
|
132
|
+
end
|
133
|
+
|
123
134
|
def test_find_by_dn_missing_entry
|
124
135
|
@ldap.expect(:search, nil, [:filter => Net::LDAP::Filter.eq('cn', 'Foo Bar'), :base => 'dc=example,dc=com'])
|
125
136
|
@adms.ldap = @ldap
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ldap_fluff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan O'Mara
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-11-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: net-ldap
|
@@ -70,6 +70,20 @@ dependencies:
|
|
70
70
|
- - '>='
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: rubocop
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
73
87
|
description: Simple library for binding & group querying on top of various LDAP implementations
|
74
88
|
email:
|
75
89
|
- jomara@redhat.com
|
@@ -118,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
132
|
requirements:
|
119
133
|
- - '>='
|
120
134
|
- !ruby/object:Gem::Version
|
121
|
-
version:
|
135
|
+
version: 1.9.3
|
122
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
137
|
requirements:
|
124
138
|
- - '>='
|