net-ldap 0.16.0 → 0.18.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.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/History.rdoc +64 -0
  3. data/README.rdoc +18 -6
  4. data/lib/net/ber/core_ext.rb +6 -6
  5. data/lib/net/ber.rb +2 -2
  6. data/lib/net/ldap/auth_adapter/gss_spnego.rb +2 -2
  7. data/lib/net/ldap/auth_adapter/sasl.rb +1 -1
  8. data/lib/net/ldap/auth_adapter/simple.rb +1 -1
  9. data/lib/net/ldap/connection.rb +23 -16
  10. data/lib/net/ldap/dataset.rb +1 -3
  11. data/lib/net/ldap/dn.rb +14 -22
  12. data/lib/net/ldap/entry.rb +11 -2
  13. data/lib/net/ldap/error.rb +2 -26
  14. data/lib/net/ldap/filter.rb +10 -3
  15. data/lib/net/ldap/instrumentation.rb +2 -2
  16. data/lib/net/ldap/password.rb +7 -5
  17. data/lib/net/ldap/pdu.rb +1 -1
  18. data/lib/net/ldap/version.rb +1 -1
  19. data/lib/net/ldap.rb +40 -17
  20. data/lib/net/snmp.rb +1 -1
  21. data/lib/net-ldap.rb +1 -1
  22. metadata +16 -106
  23. data/.gitignore +0 -9
  24. data/.rubocop.yml +0 -20
  25. data/.rubocop_todo.yml +0 -753
  26. data/.travis.yml +0 -33
  27. data/CONTRIBUTING.md +0 -54
  28. data/Gemfile +0 -2
  29. data/Rakefile +0 -23
  30. data/net-ldap.gemspec +0 -37
  31. data/script/changelog +0 -47
  32. data/script/generate-fixture-ca +0 -48
  33. data/script/install-openldap +0 -134
  34. data/script/package +0 -7
  35. data/script/release +0 -16
  36. data/test/ber/core_ext/test_array.rb +0 -22
  37. data/test/ber/core_ext/test_string.rb +0 -25
  38. data/test/ber/test_ber.rb +0 -153
  39. data/test/fixtures/ca/ca.info +0 -4
  40. data/test/fixtures/ca/cacert.pem +0 -24
  41. data/test/fixtures/ca/cakey.pem +0 -190
  42. data/test/fixtures/openldap/memberof.ldif +0 -33
  43. data/test/fixtures/openldap/retcode.ldif +0 -76
  44. data/test/fixtures/openldap/slapd.conf.ldif +0 -67
  45. data/test/fixtures/seed.ldif +0 -374
  46. data/test/integration/test_add.rb +0 -28
  47. data/test/integration/test_ber.rb +0 -30
  48. data/test/integration/test_bind.rb +0 -244
  49. data/test/integration/test_delete.rb +0 -31
  50. data/test/integration/test_open.rb +0 -88
  51. data/test/integration/test_password_modify.rb +0 -80
  52. data/test/integration/test_return_codes.rb +0 -38
  53. data/test/integration/test_search.rb +0 -77
  54. data/test/support/vm/openldap/.gitignore +0 -1
  55. data/test/support/vm/openldap/README.md +0 -64
  56. data/test/support/vm/openldap/Vagrantfile +0 -34
  57. data/test/test_auth_adapter.rb +0 -15
  58. data/test/test_dn.rb +0 -44
  59. data/test/test_entry.rb +0 -65
  60. data/test/test_filter.rb +0 -223
  61. data/test/test_filter_parser.rb +0 -24
  62. data/test/test_helper.rb +0 -74
  63. data/test/test_ldap.rb +0 -114
  64. data/test/test_ldap_connection.rb +0 -491
  65. data/test/test_ldif.rb +0 -104
  66. data/test/test_password.rb +0 -10
  67. data/test/test_rename.rb +0 -77
  68. data/test/test_search.rb +0 -39
  69. data/test/test_snmp.rb +0 -119
  70. data/test/test_ssl_ber.rb +0 -40
  71. data/test/testdata.ldif +0 -101
  72. data/testserver/ldapserver.rb +0 -209
  73. data/testserver/testdata.ldif +0 -101
data/lib/net/ldap.rb CHANGED
@@ -17,19 +17,19 @@ module Net # :nodoc:
17
17
  end
18
18
  require 'socket'
19
19
 
20
- require 'net/ber'
21
- require 'net/ldap/pdu'
22
- require 'net/ldap/filter'
23
- require 'net/ldap/dataset'
24
- require 'net/ldap/password'
25
- require 'net/ldap/entry'
26
- require 'net/ldap/instrumentation'
27
- require 'net/ldap/connection'
28
- require 'net/ldap/version'
29
- require 'net/ldap/error'
30
- require 'net/ldap/auth_adapter'
31
- require 'net/ldap/auth_adapter/simple'
32
- require 'net/ldap/auth_adapter/sasl'
20
+ require_relative 'ber'
21
+ require_relative 'ldap/pdu'
22
+ require_relative 'ldap/filter'
23
+ require_relative 'ldap/dataset'
24
+ require_relative 'ldap/password'
25
+ require_relative 'ldap/entry'
26
+ require_relative 'ldap/instrumentation'
27
+ require_relative 'ldap/connection'
28
+ require_relative 'ldap/version'
29
+ require_relative 'ldap/error'
30
+ require_relative 'ldap/auth_adapter'
31
+ require_relative 'ldap/auth_adapter/simple'
32
+ require_relative 'ldap/auth_adapter/sasl'
33
33
 
34
34
  Net::LDAP::AuthAdapter.register([:simple, :anon, :anonymous], Net::LDAP::AuthAdapter::Simple)
35
35
  Net::LDAP::AuthAdapter.register(:sasl, Net::LDAP::AuthAdapter::Sasl)
@@ -412,7 +412,7 @@ class Net::LDAP
412
412
  ResultCodeStrongerAuthRequired => "Stronger Auth Needed",
413
413
  ResultCodeReferral => "Referral",
414
414
  ResultCodeAdminLimitExceeded => "Admin Limit Exceeded",
415
- ResultCodeUnavailableCriticalExtension => "Unavailable crtical extension",
415
+ ResultCodeUnavailableCriticalExtension => "Unavailable critical extension",
416
416
  ResultCodeConfidentialityRequired => "Confidentiality Required",
417
417
  ResultCodeSaslBindInProgress => "saslBindInProgress",
418
418
  ResultCodeNoSuchAttribute => "No Such Attribute",
@@ -712,7 +712,7 @@ class Net::LDAP
712
712
  begin
713
713
  @open_connection = new_connection
714
714
  payload[:connection] = @open_connection
715
- payload[:bind] = @open_connection.bind(@auth)
715
+ payload[:bind] = @result = @open_connection.bind(@auth)
716
716
  yield self
717
717
  ensure
718
718
  @open_connection.close if @open_connection
@@ -1182,14 +1182,22 @@ class Net::LDAP
1182
1182
  # entries. This method sends an extra control code to tell the LDAP server
1183
1183
  # to do a tree delete. ('1.2.840.113556.1.4.805')
1184
1184
  #
1185
+ # If the LDAP server does not support the DELETE_TREE control code, subordinate
1186
+ # entries are deleted recursively instead.
1187
+ #
1185
1188
  # Returns True or False to indicate whether the delete succeeded. Extended
1186
1189
  # status information is available by calling #get_operation_result.
1187
1190
  #
1188
1191
  # dn = "mail=deleteme@example.com, ou=people, dc=example, dc=com"
1189
1192
  # ldap.delete_tree :dn => dn
1190
1193
  def delete_tree(args)
1191
- delete(args.merge(:control_codes => [[Net::LDAP::LDAPControls::DELETE_TREE, true]]))
1194
+ if search_root_dse[:supportedcontrol].include? Net::LDAP::LDAPControls::DELETE_TREE
1195
+ delete(args.merge(:control_codes => [[Net::LDAP::LDAPControls::DELETE_TREE, true]]))
1196
+ else
1197
+ recursive_delete(args)
1198
+ end
1192
1199
  end
1200
+
1193
1201
  # This method is experimental and subject to change. Return the rootDSE
1194
1202
  # record from the LDAP server as a Net::LDAP::Entry, or an empty Entry if
1195
1203
  # the server doesn't return the record.
@@ -1320,7 +1328,7 @@ class Net::LDAP
1320
1328
  # Force connect to see if there's a connection error
1321
1329
  connection.socket
1322
1330
  connection
1323
- rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT, Net::LDAP::ConnectionRefusedError => e
1331
+ rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
1324
1332
  @result = {
1325
1333
  :resultCode => 52,
1326
1334
  :errorMessage => ResultStrings[ResultCodeUnavailable],
@@ -1340,4 +1348,19 @@ class Net::LDAP
1340
1348
  end
1341
1349
  end
1342
1350
 
1351
+ # Recursively delete a dn and it's subordinate children.
1352
+ # This is useful when a server does not support the DELETE_TREE control code.
1353
+ def recursive_delete(args)
1354
+ raise EmptyDNError unless args.is_a?(Hash) && args.key?(:dn)
1355
+ # Delete Children
1356
+ search(base: args[:dn], scope: Net::LDAP::SearchScope_SingleLevel) do |entry|
1357
+ recursive_delete(dn: entry.dn)
1358
+ end
1359
+ # Delete Self
1360
+ unless delete(dn: args[:dn])
1361
+ raise Net::LDAP::Error, get_operation_result[:error_message].to_s
1362
+ end
1363
+ true
1364
+ end
1365
+
1343
1366
  end # class LDAP
data/lib/net/snmp.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
- require 'net/ldap/version'
2
+ require_relative 'ldap/version'
3
3
 
4
4
  # :stopdoc:
5
5
  module Net
data/lib/net-ldap.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
- require 'net/ldap'
2
+ require_relative 'net/ldap'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ldap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francis Cianfrocca
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2017-02-24 00:00:00.000000000 Z
16
+ date: 2023-04-04 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: flexmock
@@ -35,56 +35,56 @@ dependencies:
35
35
  requirements:
36
36
  - - "~>"
37
37
  - !ruby/object:Gem::Version
38
- version: '10.0'
38
+ version: 12.3.3
39
39
  type: :development
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
- version: '10.0'
45
+ version: 12.3.3
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rubocop
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: 0.42.0
52
+ version: '1.48'
53
53
  type: :development
54
54
  prerelease: false
55
55
  version_requirements: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 0.42.0
59
+ version: '1.48'
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: test-unit
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ">="
64
+ - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '0'
66
+ version: '3.3'
67
67
  type: :development
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: '0'
73
+ version: '3.3'
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: byebug
76
76
  requirement: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ">="
78
+ - - "~>"
79
79
  - !ruby/object:Gem::Version
80
- version: '0'
80
+ version: 9.0.6
81
81
  type: :development
82
82
  prerelease: false
83
83
  version_requirements: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ">="
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '0'
87
+ version: 9.0.6
88
88
  description: |-
89
89
  Net::LDAP for Ruby (also called net-ldap) implements client access for the
90
90
  Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for
@@ -112,18 +112,11 @@ extra_rdoc_files:
112
112
  - License.rdoc
113
113
  - README.rdoc
114
114
  files:
115
- - ".gitignore"
116
- - ".rubocop.yml"
117
- - ".rubocop_todo.yml"
118
- - ".travis.yml"
119
- - CONTRIBUTING.md
120
115
  - Contributors.rdoc
121
- - Gemfile
122
116
  - Hacking.rdoc
123
117
  - History.rdoc
124
118
  - License.rdoc
125
119
  - README.rdoc
126
- - Rakefile
127
120
  - lib/net-ldap.rb
128
121
  - lib/net/ber.rb
129
122
  - lib/net/ber/ber_parser.rb
@@ -149,50 +142,6 @@ files:
149
142
  - lib/net/ldap/pdu.rb
150
143
  - lib/net/ldap/version.rb
151
144
  - lib/net/snmp.rb
152
- - net-ldap.gemspec
153
- - script/changelog
154
- - script/generate-fixture-ca
155
- - script/install-openldap
156
- - script/package
157
- - script/release
158
- - test/ber/core_ext/test_array.rb
159
- - test/ber/core_ext/test_string.rb
160
- - test/ber/test_ber.rb
161
- - test/fixtures/ca/ca.info
162
- - test/fixtures/ca/cacert.pem
163
- - test/fixtures/ca/cakey.pem
164
- - test/fixtures/openldap/memberof.ldif
165
- - test/fixtures/openldap/retcode.ldif
166
- - test/fixtures/openldap/slapd.conf.ldif
167
- - test/fixtures/seed.ldif
168
- - test/integration/test_add.rb
169
- - test/integration/test_ber.rb
170
- - test/integration/test_bind.rb
171
- - test/integration/test_delete.rb
172
- - test/integration/test_open.rb
173
- - test/integration/test_password_modify.rb
174
- - test/integration/test_return_codes.rb
175
- - test/integration/test_search.rb
176
- - test/support/vm/openldap/.gitignore
177
- - test/support/vm/openldap/README.md
178
- - test/support/vm/openldap/Vagrantfile
179
- - test/test_auth_adapter.rb
180
- - test/test_dn.rb
181
- - test/test_entry.rb
182
- - test/test_filter.rb
183
- - test/test_filter_parser.rb
184
- - test/test_helper.rb
185
- - test/test_ldap.rb
186
- - test/test_ldap_connection.rb
187
- - test/test_ldif.rb
188
- - test/test_password.rb
189
- - test/test_rename.rb
190
- - test/test_search.rb
191
- - test/test_snmp.rb
192
- - test/test_ssl_ber.rb
193
- - test/testdata.ldif
194
- - testserver/ldapserver.rb
195
- - testserver/testdata.ldif
196
145
  homepage: http://github.com/ruby-ldap/ruby-net-ldap
197
146
  licenses:
198
147
  - MIT
@@ -214,49 +163,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
163
  - !ruby/object:Gem::Version
215
164
  version: '0'
216
165
  requirements: []
217
- rubyforge_project:
218
- rubygems_version: 2.5.2
166
+ rubygems_version: 3.4.7
219
167
  signing_key:
220
168
  specification_version: 4
221
169
  summary: Net::LDAP for Ruby (also called net-ldap) implements client access for the
222
170
  Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing
223
171
  distributed directory services
224
- test_files:
225
- - test/ber/core_ext/test_array.rb
226
- - test/ber/core_ext/test_string.rb
227
- - test/ber/test_ber.rb
228
- - test/fixtures/ca/ca.info
229
- - test/fixtures/ca/cacert.pem
230
- - test/fixtures/ca/cakey.pem
231
- - test/fixtures/openldap/memberof.ldif
232
- - test/fixtures/openldap/retcode.ldif
233
- - test/fixtures/openldap/slapd.conf.ldif
234
- - test/fixtures/seed.ldif
235
- - test/integration/test_add.rb
236
- - test/integration/test_ber.rb
237
- - test/integration/test_bind.rb
238
- - test/integration/test_delete.rb
239
- - test/integration/test_open.rb
240
- - test/integration/test_password_modify.rb
241
- - test/integration/test_return_codes.rb
242
- - test/integration/test_search.rb
243
- - test/support/vm/openldap/.gitignore
244
- - test/support/vm/openldap/README.md
245
- - test/support/vm/openldap/Vagrantfile
246
- - test/test_auth_adapter.rb
247
- - test/test_dn.rb
248
- - test/test_entry.rb
249
- - test/test_filter.rb
250
- - test/test_filter_parser.rb
251
- - test/test_helper.rb
252
- - test/test_ldap.rb
253
- - test/test_ldap_connection.rb
254
- - test/test_ldif.rb
255
- - test/test_password.rb
256
- - test/test_rename.rb
257
- - test/test_search.rb
258
- - test/test_snmp.rb
259
- - test/test_ssl_ber.rb
260
- - test/testdata.ldif
261
- - testserver/ldapserver.rb
262
- - testserver/testdata.ldif
172
+ test_files: []
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- *~
2
- *.swp
3
- .rvmrc
4
- pkg/
5
- doc/
6
- publish/
7
- Gemfile.lock
8
- .bundle
9
- bin/
data/.rubocop.yml DELETED
@@ -1,20 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- AllCops:
4
- Exclude:
5
- - 'pkg/**/*'
6
-
7
- Style/ExtraSpacing:
8
- Enabled: false
9
-
10
- Lint/AssignmentInCondition:
11
- Enabled: false
12
-
13
- Style/ParallelAssignment:
14
- Enabled: false
15
-
16
- Style/TrailingCommaInLiteral:
17
- EnforcedStyleForMultiline: comma
18
-
19
- Style/TrailingCommaInArguments:
20
- EnforcedStyleForMultiline: comma