dm-ldap-adapter 0.4.3-java

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/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --loadby random
@@ -0,0 +1,163 @@
1
+ require 'rubygems'
2
+
3
+ require 'slf4r/ruby_logger'
4
+ Slf4r::LoggerFacade4RubyLogger.level = :warn
5
+
6
+ require 'dm-sqlite-adapter'
7
+ require 'dm-migrations'
8
+ require 'dm-transactions'
9
+ require 'pathname'
10
+ $LOAD_PATH << Pathname(__FILE__).dirname.parent.expand_path + 'lib'
11
+
12
+ print "datamapper version:"
13
+ puts DataMapper::VERSION
14
+
15
+ require 'ldap_resource'
16
+ require 'adapters/ldap_adapter'
17
+
18
+ DataMapper.setup(:default, 'sqlite3::memory:')
19
+ DataMapper.setup(:ldap, {
20
+ :adapter => 'ldap',
21
+ :host => 'localhost',
22
+ :port => '389',
23
+ :base => "dc=example,dc=com",
24
+ :facade => (ENV['FACADE'] || :net_ldap).to_sym,
25
+ :bind_name => "cn=admin,dc=example,dc=com",
26
+ :password => "behappy"
27
+ })
28
+
29
+ puts "using facade #{(ENV['FACADE'] || :net_ldap).to_sym}"
30
+
31
+ module DataMapper
32
+ module Resource
33
+ class State
34
+
35
+ # a persisted/deleted resource
36
+ class Deleted < Persisted
37
+ def set(subject, value)
38
+ warn 'Deleted resource cannot be modified ' + subject.inspect + ' ' + value.to_s + " " + @resource.inspect
39
+ super
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ class User
46
+ include DataMapper::Resource
47
+ property :id, Serial, :field => "uidnumber"
48
+ property :login, String, :field => "uid", :unique_index => true
49
+ property :hashed_password, String, :field => "userPassword", :writer => :private
50
+ property :name, String, :field => "cn"
51
+ property :mail, String
52
+ property :age, Integer, :field => "postalCode"
53
+ property :alive, Boolean, :field => "gecos"
54
+
55
+ has n, :roles
56
+
57
+ has n, :group_users
58
+
59
+ def groups
60
+ groups = GroupUser.all(:user_id => login).collect{ |gu| gu.group }
61
+
62
+ def groups.user=(user)
63
+ @user = user
64
+ end
65
+
66
+ groups.user = self
67
+
68
+ def groups.<<(group)
69
+ unless member? group
70
+ GroupUser.create(:user_id => @user.login, :group_id => group.id)
71
+ super
72
+ end
73
+ self
74
+ end
75
+
76
+ def groups.delete(group)
77
+ gu = GroupUser.first(:user_id => @user.login, :group_id => group.id)
78
+ if gu
79
+ gu.destroy
80
+ super
81
+ end
82
+ end
83
+
84
+ groups
85
+ end
86
+
87
+ dn_prefix { |user| "uid=#{user.login}"}
88
+
89
+ treebase "ou=people"
90
+
91
+ ldap_properties do |user|
92
+ properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
93
+ properties[:sn] = "#{user.name.sub(/.*\ /, "")}"
94
+ properties[:givenname] = "#{user.name.sub(/\ .*/, "")}"
95
+ properties[:homedirectory] = "/home/#{user.login}"
96
+ properties
97
+ end
98
+
99
+ def password=(password)
100
+ salt = "--#{Time.now}--#{login}--"
101
+ attribute_set(:hashed_password, Ldap::Digest.ssha(password, salt)) if password
102
+ end
103
+ end
104
+
105
+ class Role
106
+ include DataMapper::Resource
107
+ property :id, Serial, :field => "gidNumber"
108
+ property :name, String, :field => "cn"
109
+
110
+ dn_prefix { |role| "cn=#{role.name}" }
111
+
112
+ treebase "ou=groups"
113
+
114
+ ldap_properties {{:objectclass => "posixGroup"}}
115
+
116
+ belongs_to :user
117
+ end
118
+
119
+ class Group
120
+ include DataMapper::Resource
121
+ property :id, Serial, :field => "gidNumber"
122
+ property :name, String, :field => "cn"
123
+
124
+ dn_prefix { |group| "cn=#{group.name}" }
125
+
126
+ treebase "ou=groups"
127
+
128
+ ldap_properties {{:objectclass => "posixGroup"}}
129
+ end
130
+
131
+ class GroupUser
132
+ include DataMapper::Resource
133
+
134
+ dn_prefix { |group_user| "cn=#{group_user.group.name}" }
135
+
136
+ treebase "ou=groups"
137
+
138
+ multivalue_field :memberUid
139
+
140
+ ldap_properties do |group_user|
141
+ {:cn=>"#{group_user.group.name}", :objectclass => "posixGroup"}
142
+ end
143
+
144
+ property :user_id, String, :key => true, :field => "memberUid"
145
+ property :group_id, Integer, :key => true, :field => "gidNumber"
146
+
147
+ def group
148
+ Group.get!(group_id)
149
+ end
150
+
151
+ def group=(group)
152
+ group_id = group.id
153
+ end
154
+
155
+ def user
156
+ User.get!(user_id)
157
+ end
158
+
159
+ def user=(user)
160
+ user_id = user.id
161
+ end
162
+ end
163
+ DataMapper.auto_migrate!(:default)
metadata ADDED
@@ -0,0 +1,354 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dm-ldap-adapter
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ - 3
9
+ version: 0.4.3
10
+ platform: java
11
+ authors:
12
+ - mkristian
13
+ - xertres
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-06-06 00:00:00 +05:30
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: net-ldap
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 2
31
+ - 2
32
+ version: 0.2.2
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: slf4r
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 4
45
+ - 2
46
+ version: 0.4.2
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: dm-core
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 1
58
+ - 1
59
+ - 0
60
+ version: 1.1.0
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: addressable
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "="
69
+ - !ruby/object:Gem::Version
70
+ segments:
71
+ - 2
72
+ - 2
73
+ - 6
74
+ version: 2.2.6
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: dm-transactions
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "="
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 1
86
+ - 1
87
+ - 0
88
+ version: 1.1.0
89
+ type: :runtime
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: dm-sqlite-adapter
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "="
97
+ - !ruby/object:Gem::Version
98
+ segments:
99
+ - 1
100
+ - 1
101
+ - 0
102
+ version: 1.1.0
103
+ type: :development
104
+ version_requirements: *id006
105
+ - !ruby/object:Gem::Dependency
106
+ name: dm-do-adapter
107
+ prerelease: false
108
+ requirement: &id007 !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "="
111
+ - !ruby/object:Gem::Version
112
+ segments:
113
+ - 1
114
+ - 1
115
+ - 0
116
+ version: 1.1.0
117
+ type: :runtime
118
+ version_requirements: *id007
119
+ - !ruby/object:Gem::Dependency
120
+ name: data_objects
121
+ prerelease: false
122
+ requirement: &id008 !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "="
125
+ - !ruby/object:Gem::Version
126
+ segments:
127
+ - 0
128
+ - 10
129
+ - 6
130
+ version: 0.10.6
131
+ type: :runtime
132
+ version_requirements: *id008
133
+ - !ruby/object:Gem::Dependency
134
+ name: do_sqlite3
135
+ prerelease: false
136
+ requirement: &id009 !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "="
139
+ - !ruby/object:Gem::Version
140
+ segments:
141
+ - 0
142
+ - 10
143
+ - 6
144
+ version: 0.10.6
145
+ type: :runtime
146
+ version_requirements: *id009
147
+ - !ruby/object:Gem::Dependency
148
+ name: do_jdbc
149
+ prerelease: false
150
+ requirement: &id010 !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "="
153
+ - !ruby/object:Gem::Version
154
+ segments:
155
+ - 0
156
+ - 10
157
+ - 6
158
+ version: 0.10.6
159
+ type: :runtime
160
+ version_requirements: *id010
161
+ - !ruby/object:Gem::Dependency
162
+ name: jdbc-sqlite3
163
+ prerelease: false
164
+ requirement: &id011 !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "="
167
+ - !ruby/object:Gem::Version
168
+ segments:
169
+ - 3
170
+ - 6
171
+ - 14
172
+ - 2
173
+ - 56
174
+ version: 3.6.14.2.056
175
+ type: :runtime
176
+ version_requirements: *id011
177
+ - !ruby/object:Gem::Dependency
178
+ name: dm-migrations
179
+ prerelease: false
180
+ requirement: &id012 !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "="
183
+ - !ruby/object:Gem::Version
184
+ segments:
185
+ - 1
186
+ - 1
187
+ - 0
188
+ version: 1.1.0
189
+ type: :development
190
+ version_requirements: *id012
191
+ - !ruby/object:Gem::Dependency
192
+ name: rspec
193
+ prerelease: false
194
+ requirement: &id013 !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "="
197
+ - !ruby/object:Gem::Version
198
+ segments:
199
+ - 2
200
+ - 6
201
+ - 0
202
+ version: 2.6.0
203
+ type: :development
204
+ version_requirements: *id013
205
+ - !ruby/object:Gem::Dependency
206
+ name: rspec-core
207
+ prerelease: false
208
+ requirement: &id014 !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - "="
211
+ - !ruby/object:Gem::Version
212
+ segments:
213
+ - 2
214
+ - 6
215
+ - 2
216
+ version: 2.6.2
217
+ type: :runtime
218
+ version_requirements: *id014
219
+ - !ruby/object:Gem::Dependency
220
+ name: rspec-expectations
221
+ prerelease: false
222
+ requirement: &id015 !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - "="
225
+ - !ruby/object:Gem::Version
226
+ segments:
227
+ - 2
228
+ - 6
229
+ - 0
230
+ version: 2.6.0
231
+ type: :runtime
232
+ version_requirements: *id015
233
+ - !ruby/object:Gem::Dependency
234
+ name: diff-lcs
235
+ prerelease: false
236
+ requirement: &id016 !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - "="
239
+ - !ruby/object:Gem::Version
240
+ segments:
241
+ - 1
242
+ - 1
243
+ - 2
244
+ version: 1.1.2
245
+ type: :runtime
246
+ version_requirements: *id016
247
+ - !ruby/object:Gem::Dependency
248
+ name: rspec-mocks
249
+ prerelease: false
250
+ requirement: &id017 !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - "="
253
+ - !ruby/object:Gem::Version
254
+ segments:
255
+ - 2
256
+ - 6
257
+ - 0
258
+ version: 2.6.0
259
+ type: :runtime
260
+ version_requirements: *id017
261
+ - !ruby/object:Gem::Dependency
262
+ name: jruby-openssl
263
+ prerelease: false
264
+ requirement: &id018 !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ segments:
269
+ - 0
270
+ - 0
271
+ - 0
272
+ version: 0.0.0
273
+ type: :runtime
274
+ version_requirements: *id018
275
+ description: ldap adapter for datamapper which uses either net-ldap or ruby-ldap
276
+ email:
277
+ - m.kristian@web.de
278
+ - ""
279
+ executables: []
280
+
281
+ extensions: []
282
+
283
+ extra_rdoc_files:
284
+ - History.txt
285
+ - README.md
286
+ - ldap-commands.txt
287
+ files:
288
+ - MIT-LICENSE
289
+ - History.txt
290
+ - README.md
291
+ - ldap-commands.txt
292
+ - lib/dm-ldap-adapter.rb
293
+ - lib/ldap_resource.rb
294
+ - lib/dummy_ldap_resource.rb
295
+ - lib/adapters/ldap_adapter.rb
296
+ - lib/adapters/noop_transaction.rb
297
+ - lib/ldap/version.rb
298
+ - lib/ldap/unboundid_ldap_facade.rb
299
+ - lib/ldap/transactions.rb
300
+ - lib/ldap/ruby_ldap_facade.rb
301
+ - lib/ldap/digest.rb
302
+ - lib/ldap/net_ldap_facade.rb
303
+ - lib/ldap/conditions_2_filter.rb
304
+ - lib/ldap/array.rb
305
+ - spec/multi_value_attributes_spec.rb
306
+ - spec/sorting_spec.rb
307
+ - spec/multi_repository_spec.rb
308
+ - spec/contact.rb
309
+ - spec/spec.opts
310
+ - spec/spec_helper.rb
311
+ - spec/ldap_adapter_spec.rb
312
+ - spec/authentication_ldap_adapter_spec.rb
313
+ - spec/assiociations_ldap_adapter_spec.rb
314
+ - spec/ldap_array_spec.rb
315
+ - spec/performance_spec.rb.omit
316
+ has_rdoc: true
317
+ homepage: http://github.com/mkristian/dm-ldap-adapter
318
+ licenses:
319
+ - MIT-LICENSE
320
+ post_install_message:
321
+ rdoc_options:
322
+ - --main
323
+ - README.txt
324
+ require_paths:
325
+ - lib
326
+ required_ruby_version: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ segments:
331
+ - 0
332
+ version: "0"
333
+ required_rubygems_version: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - ">="
336
+ - !ruby/object:Gem::Version
337
+ segments:
338
+ - 0
339
+ version: "0"
340
+ requirements: []
341
+
342
+ rubyforge_project:
343
+ rubygems_version: 1.3.6
344
+ signing_key:
345
+ specification_version: 3
346
+ summary: ""
347
+ test_files:
348
+ - spec/multi_value_attributes_spec.rb
349
+ - spec/sorting_spec.rb
350
+ - spec/multi_repository_spec.rb
351
+ - spec/ldap_adapter_spec.rb
352
+ - spec/authentication_ldap_adapter_spec.rb
353
+ - spec/assiociations_ldap_adapter_spec.rb
354
+ - spec/ldap_array_spec.rb