ldap_fluff 0.3.7 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5648d1eb100608b85c3815cc5ae5a215cd1ce5b0
4
- data.tar.gz: afb387b8210f7120263b218bb2e3def00a7deb80
3
+ metadata.gz: 54e77169e6958e3e3c2abaa3963fb82e2e897d90
4
+ data.tar.gz: 393ddfd24ecb0f28f0d301b3edb30a8788adebb2
5
5
  SHA512:
6
- metadata.gz: 11596e7ac3c290ab3270432bfc0f13fbed11d39a8ebd4daa9f5f699656405b1f5f27c9637afc8a4b08c4829a72e2cbea2084b50d38ff271c48bfa5d1354784cc
7
- data.tar.gz: 58d72eb169b5df0a0d4f00cb29b44c56e82b7436b5b85e530daf4e17698768e1a3fd211f3e2c07ee0b1d7de344ef3477371196cbe1209aa5de1fae974559728a
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(',', 2)
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.3.7
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-09-09 00:00:00.000000000 Z
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: '0'
135
+ version: 1.9.3
122
136
  required_rubygems_version: !ruby/object:Gem::Requirement
123
137
  requirements:
124
138
  - - '>='