dm-ldap-adapter 0.4.5-java → 0.4.6-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.
@@ -0,0 +1,34 @@
1
+ # no Gemfile.lock on git #
2
+
3
+ there are two references for different DM versions
4
+
5
+ * ~> 1.1.0
6
+
7
+ * ~> 1.0.0
8
+
9
+ with a simple symbolic link you can switch between these two profiles.
10
+
11
+ `$ ln -s Gemfile.lock.1.1.0 Gemfile.lock`
12
+
13
+ for that reason Gemfile.lock in not on github, so the script run-all.sh
14
+
15
+ # run specs #
16
+
17
+ `$ bundle exec spec spec`
18
+
19
+ or for some jruby versions (which needs jruby and ruby-maven gem)
20
+
21
+ `$ rmvn test`
22
+ `$ rmvn test --Djruby.versions=1.5.6,1.6.2 -Djruby.18and19
23
+
24
+ # build gem
25
+
26
+ for the ruby platform
27
+
28
+ `$ gem build dm-ldap-adapter.gemspec`
29
+
30
+ or for java platform (needs jruby and ruby-maven gem)
31
+
32
+ `$ rmvn package`
33
+
34
+ gem will be inside target/dm-ldap-adapter directory.
@@ -0,0 +1,17 @@
1
+ posix accounts/groups example
2
+ =============================
3
+
4
+ first you need to adjust the configuration for ldap adapter in `example/posix.rb` and then start irb
5
+
6
+ $ LDAP_PWD='secret' irb
7
+
8
+ require 'example/posix.rb'
9
+ u = User.create(:login=>'test', :name => "name", :password => "pwd")
10
+ User.all
11
+ g = Group.create(:name => "test")
12
+ Group.all
13
+ u.groups << g
14
+ u.groups
15
+ g.users
16
+ u.authenticate("wrong-pwd")
17
+ u.authenticate("pwd")
@@ -0,0 +1,166 @@
1
+ require 'pathname'
2
+ require 'rubygems'
3
+ require 'slf4r/logger'
4
+ require 'slf4r/ruby_logger'
5
+ require 'dm-core'
6
+
7
+ $LOAD_PATH << Pathname(__FILE__).dirname.parent.expand_path + 'lib'
8
+
9
+ # Logging.init :debug, :info, :warn, :error
10
+
11
+ # appender = Logging::Appender.stdout
12
+ # appender.layout = Logging::Layouts::Pattern.new(:pattern => "%d [%-l] (%c) %m\n")
13
+ # logger = Logging::Logger.new(:root)
14
+ # logger.add_appenders(appender)
15
+ # logger.level = :debug
16
+ # logger.info "initialized logger . . ."
17
+
18
+ dummy = false # uncomment this to use ldap, dummy = false uses the database
19
+ unless dummy
20
+ require 'ldap_resource'
21
+
22
+ require 'adapters/ldap_adapter'
23
+
24
+ DataMapper.setup(:default, {
25
+ :adapter => 'ldap',
26
+ :host => 'localhost',
27
+ :port => '389',
28
+ :base => ENV['LDAP_BASE'] || "dc=example,dc=com",
29
+ :bind_name => "cn=admin," + (ENV['LDAP_BASE'] || "dc=example,dc=com"),
30
+ :password => ENV['LDAP_PWD'] || "behappy"
31
+ })
32
+ else
33
+ require 'dummy_ldap_resource'
34
+ DataMapper.setup(:default, 'sqlite3::memory:')
35
+ adapter = DataMapper.repository.adapter
36
+ def adapter.ldap_connection
37
+ con = Object.new
38
+ def con.open
39
+ yield
40
+ end
41
+ con
42
+ end
43
+ end
44
+
45
+ class User
46
+ include DataMapper::Resource
47
+
48
+ property :id, Serial, :field => "uidNumber"
49
+ property :login, String, :field => "uid"
50
+ property :hashed_password, String, :field => "userPassword"
51
+ property :name, String, :field => "cn"
52
+
53
+ has n, :group_users, :child_key => [:memberuid]
54
+
55
+ def groups
56
+ groups = GroupUser.all(:memberuid => login).collect{ |gu| gu.group }
57
+ def groups.user=(user)
58
+ @user = user
59
+ end
60
+ groups.user = self
61
+ def groups.<<(group)
62
+ unless member? group
63
+ GroupUser.create(:memberuid => @user.login, :gidnumber => group.id)
64
+ super
65
+ end
66
+ self
67
+ end
68
+ def groups.delete(group)
69
+ gu = GroupUser.first(:memberuid => @user.login, :gidnumber => group.id)
70
+ if gu
71
+ gu.destroy
72
+ super
73
+ end
74
+ end
75
+ groups
76
+ end
77
+
78
+ dn_prefix { |user| "uid=#{user.login}"}
79
+
80
+ treebase "ou=people"
81
+
82
+ ldap_properties do |user|
83
+ properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
84
+ properties[:sn] = "#{user.name.sub(/.*\ /, "")}"
85
+ properties[:givenname] = "#{user.name.sub(/\ .*/, "")}"
86
+ properties[:homedirectory] = "/home/#{user.login}"
87
+ properties
88
+ end
89
+
90
+ def password=(password)
91
+ attribute_set(:hashed_password, Ldap::Digest.sha(password)) if password
92
+ end
93
+ end
94
+
95
+ class Group
96
+ include DataMapper::Resource
97
+ include Slf4r::Logger
98
+ property :id, Serial, :field => "gidNumber"
99
+ property :name, String, :field => "cn"
100
+
101
+ dn_prefix { |group| "cn=#{group.name}" }
102
+
103
+ treebase "ou=groups"
104
+
105
+ ldap_properties {{ :objectclass => "posixGroup"}}
106
+
107
+ def users
108
+ users = GroupUser.all(:gidnumber => id).collect{ |gu| gu.user }
109
+ def users.group=(group)
110
+ @group = group
111
+ end
112
+ users.group = self
113
+ def users.<<(user)
114
+ unless member? user
115
+ GroupUser.create(:memberuid => user.login, :gidnumber => @group.id)
116
+ super
117
+ end
118
+ self
119
+ end
120
+ def users.delete(user)
121
+ gu = GroupUser.first(:memberuid => user.login, :gidnumber => @group.id)
122
+ if gu
123
+ gu.destroy
124
+ super
125
+ end
126
+ end
127
+ users
128
+ end
129
+ end
130
+
131
+ class GroupUser
132
+ include DataMapper::Resource
133
+ include Slf4r::Logger
134
+
135
+ dn_prefix { |group_user| "cn=#{group_user.group.name}" }
136
+
137
+ treebase "ou=groups"
138
+
139
+ multivalue_field :memberuid
140
+
141
+ ldap_properties do |group_user|
142
+ {:cn=>"#{group_user.group.name}", :objectclass => "posixGroup"}
143
+ end
144
+ property :memberuid, String, :key => true#, :field => "memberUid"
145
+ property :gidnumber, Integer, :key => true#, :field => "gidNumber"
146
+
147
+ def group
148
+ Group.get!(gidnumber)
149
+ end
150
+
151
+ def group=(group)
152
+ gidnumber = group.id
153
+ end
154
+
155
+ def user
156
+ User.first(:login => memberuid)
157
+ end
158
+
159
+ def user=(user)
160
+ memberuid = user.login
161
+ end
162
+ end
163
+
164
+ if dummy
165
+ DataMapper.auto_migrate!
166
+ end
@@ -209,16 +209,22 @@ module DataMapper
209
209
  value = prop.get!(resource)
210
210
  if prop.class == ::Ldap::LdapArray
211
211
  props[prop.field.to_sym] = value unless value.nil? or value.size == 0
212
+ elsif ::DataMapper::Property::Boolean === prop
213
+ props[prop.field.to_sym] = value ? 'TRUE' : 'FALSE' unless value.nil?
212
214
  else
213
- props[prop.field.to_sym] = value.to_s unless value.nil?
215
+ props[prop.field.to_sym] = prop.dump(value).to_s unless value.nil?
214
216
  end
215
217
  key = prop if prop.serial?
216
218
  end
217
219
  resource_dup = resource.dup
218
- id = ldap.retrieve_next_id(resource.model.treebase,
219
- key_properties(resource).field)
220
- resource_dup.send("#{key_properties(resource).name}=".to_sym, id)
221
- props[key_properties(resource).field.to_sym] = "#{id}"
220
+
221
+ if props[key_properties(resource).field.to_sym].nil? then
222
+ id = ldap.retrieve_next_id(resource.model.treebase,
223
+ key_properties(resource).field)
224
+ resource_dup.send("#{key_properties(resource).name}=".to_sym, id)
225
+ props[key_properties(resource).field.to_sym] = "#{id}"
226
+ end
227
+
222
228
  key_value = begin
223
229
  ldap.create_object(resource.model.dn_prefix(resource_dup),
224
230
  resource.model.treebase,
@@ -65,13 +65,14 @@ module Ldap
65
65
  # @param Array of conditions for the search
66
66
  # @return Array of Hashes with a name/values pair for each attribute
67
67
  def read_objects(treebase, key_fields, conditions, field_names, order_field = nil)
68
- searchbase = base(treebase)
69
- filter = Conditions2Filter.convert(conditions)
70
68
 
71
69
  # If there is a :dn in the filter skip everything and look it up
72
70
  if dn = conditions.detect { |c| c[1] == "dn" } then
73
71
  searchbase = dn[2]
74
72
  filter = nil
73
+ else
74
+ searchbase = base(treebase)
75
+ filter = Conditions2Filter.convert(conditions)
75
76
  end
76
77
 
77
78
  result = []
metadata CHANGED
@@ -1,307 +1,215 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dm-ldap-adapter
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.4.5
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.4.6
6
6
  platform: java
7
- authors:
8
- - mkristian
9
- - xertres
10
- autorequire:
7
+ authors:
8
+ - mkristian
9
+ - xertres
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-12-14 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: net-ldap
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - "="
23
- - !ruby/object:Gem::Version
24
- version: 0.2.2
25
- type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: slf4r
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - "="
34
- - !ruby/object:Gem::Version
35
- version: 0.4.2
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: dm-core
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - "="
45
- - !ruby/object:Gem::Version
46
- version: 1.2.0
47
- type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: addressable
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - "="
56
- - !ruby/object:Gem::Version
57
- version: 2.2.6
58
- type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: dm-transactions
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - "="
67
- - !ruby/object:Gem::Version
68
- version: 1.2.0
69
- type: :runtime
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: dm-sqlite-adapter
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - "="
78
- - !ruby/object:Gem::Version
79
- version: 1.2.0
80
- type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: dm-do-adapter
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - "="
89
- - !ruby/object:Gem::Version
90
- version: 1.2.0
91
- type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: data_objects
95
- prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - "="
100
- - !ruby/object:Gem::Version
101
- version: 0.10.7
102
- type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: do_sqlite3
106
- prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - "="
111
- - !ruby/object:Gem::Version
112
- version: 0.10.7
113
- type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: do_jdbc
117
- prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
119
- none: false
120
- requirements:
121
- - - "="
122
- - !ruby/object:Gem::Version
123
- version: 0.10.7
124
- type: :runtime
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: jdbc-sqlite3
128
- prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - "="
133
- - !ruby/object:Gem::Version
134
- version: 3.6.14.2.056
135
- type: :runtime
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: dm-migrations
139
- prerelease: false
140
- requirement: &id012 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
143
- - - "="
144
- - !ruby/object:Gem::Version
145
- version: 1.2.0
146
- type: :development
147
- version_requirements: *id012
148
- - !ruby/object:Gem::Dependency
149
- name: rspec
150
- prerelease: false
151
- requirement: &id013 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - "="
155
- - !ruby/object:Gem::Version
156
- version: 2.6.0
157
- type: :development
158
- version_requirements: *id013
159
- - !ruby/object:Gem::Dependency
160
- name: rspec-core
161
- prerelease: false
162
- requirement: &id014 !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
165
- - - "="
166
- - !ruby/object:Gem::Version
167
- version: 2.6.2
168
- type: :runtime
169
- version_requirements: *id014
170
- - !ruby/object:Gem::Dependency
171
- name: rspec-expectations
172
- prerelease: false
173
- requirement: &id015 !ruby/object:Gem::Requirement
174
- none: false
175
- requirements:
176
- - - "="
177
- - !ruby/object:Gem::Version
178
- version: 2.6.0
179
- type: :runtime
180
- version_requirements: *id015
181
- - !ruby/object:Gem::Dependency
182
- name: diff-lcs
183
- prerelease: false
184
- requirement: &id016 !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - "="
188
- - !ruby/object:Gem::Version
189
- version: 1.1.3
190
- type: :runtime
191
- version_requirements: *id016
192
- - !ruby/object:Gem::Dependency
193
- name: rspec-mocks
194
- prerelease: false
195
- requirement: &id017 !ruby/object:Gem::Requirement
196
- none: false
197
- requirements:
198
- - - "="
199
- - !ruby/object:Gem::Version
200
- version: 2.6.0
201
- type: :runtime
202
- version_requirements: *id017
203
- - !ruby/object:Gem::Dependency
204
- name: bundler
205
- prerelease: false
206
- requirement: &id018 !ruby/object:Gem::Requirement
207
- none: false
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- version: 0.0.0
212
- type: :development
213
- version_requirements: *id018
214
- - !ruby/object:Gem::Dependency
215
- name: jruby-openssl
216
- prerelease: false
217
- requirement: &id019 !ruby/object:Gem::Requirement
218
- none: false
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: 0.0.0
223
- type: :runtime
224
- version_requirements: *id019
13
+ date: 2013-04-10 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: net-ldap
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.2'
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '0.2'
28
+ none: false
29
+ prerelease: false
30
+ type: :runtime
31
+ - !ruby/object:Gem::Dependency
32
+ name: slf4r
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - "~>"
36
+ - !ruby/object:Gem::Version
37
+ version: 0.4.2
38
+ none: false
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: 0.4.2
44
+ none: false
45
+ prerelease: false
46
+ type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
+ name: dm-core
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ none: false
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.0'
60
+ none: false
61
+ prerelease: false
62
+ type: :runtime
63
+ - !ruby/object:Gem::Dependency
64
+ name: dm-transactions
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
70
+ none: false
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ none: false
77
+ prerelease: false
78
+ type: :runtime
79
+ - !ruby/object:Gem::Dependency
80
+ name: dm-sqlite-adapter
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '1.0'
86
+ none: false
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.0'
92
+ none: false
93
+ prerelease: false
94
+ type: :development
95
+ - !ruby/object:Gem::Dependency
96
+ name: dm-migrations
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.0'
102
+ none: false
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '1.0'
108
+ none: false
109
+ prerelease: false
110
+ type: :development
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.6'
118
+ none: false
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.6'
124
+ none: false
125
+ prerelease: false
126
+ type: :development
127
+ - !ruby/object:Gem::Dependency
128
+ name: jruby-openssl
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - '='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.7.2
134
+ none: false
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '='
138
+ - !ruby/object:Gem::Version
139
+ version: 0.7.2
140
+ none: false
141
+ prerelease: false
142
+ type: :runtime
225
143
  description: ldap adapter for datamapper which uses either net-ldap or ruby-ldap
226
- email:
227
- - m.kristian@web.de
228
- - ""
144
+ email:
145
+ - m.kristian@web.de
146
+ - ''
229
147
  executables: []
230
-
231
148
  extensions: []
232
-
233
- extra_rdoc_files:
234
- - History.txt
235
- - README.md
236
- - ldap-commands.txt
237
- files:
238
- - MIT-LICENSE
239
- - History.txt
240
- - README.md
241
- - ldap-commands.txt
242
- - lib/dm-ldap-adapter.rb
243
- - lib/ldap_resource.rb
244
- - lib/dummy_ldap_resource.rb
245
- - lib/adapters/ldap_adapter.rb
246
- - lib/adapters/noop_transaction.rb
247
- - lib/ldap/version.rb
248
- - lib/ldap/unboundid_ldap_facade.rb
249
- - lib/ldap/transactions.rb
250
- - lib/ldap/ruby_ldap_facade.rb
251
- - lib/ldap/digest.rb
252
- - lib/ldap/net_ldap_facade.rb
253
- - lib/ldap/conditions_2_filter.rb
254
- - lib/ldap/array.rb
255
- - spec/multi_value_attributes_spec.rb
256
- - spec/sorting_spec.rb
257
- - spec/multi_repository_spec.rb
258
- - spec/spec.opts
259
- - spec/spec_helper.rb
260
- - spec/ldap_adapter_spec.rb
261
- - spec/authentication_ldap_adapter_spec.rb
262
- - spec/assiociations_ldap_adapter_spec.rb
263
- - spec/ldap_array_spec.rb
264
- - spec/performance_spec.rb.omit
265
- - spec/support/group_user.rb
266
- - spec/support/resource_state.rb-
267
- - spec/support/user.rb
268
- - spec/support/test_contact.rb
269
- - spec/support/role.rb
270
- - spec/support/contact.rb.omit
271
- - spec/support/group.rb
149
+ extra_rdoc_files:
150
+ - History.txt
151
+ - README.md
152
+ - ldap-commands.txt
153
+ files:
154
+ - History.txt
155
+ - MIT-LICENSE
156
+ - ldap-commands.txt
157
+ - README.md
158
+ - README-example.md
159
+ - README-bundler.md
160
+ - lib/dm-ldap-adapter.rb
161
+ - lib/ldap_resource.rb
162
+ - lib/dummy_ldap_resource.rb
163
+ - lib/adapters/ldap_adapter.rb
164
+ - lib/adapters/noop_transaction.rb
165
+ - lib/ldap/version.rb
166
+ - lib/ldap/unboundid_ldap_facade.rb
167
+ - lib/ldap/transactions.rb
168
+ - lib/ldap/ruby_ldap_facade.rb
169
+ - lib/ldap/digest.rb
170
+ - lib/ldap/net_ldap_facade.rb
171
+ - lib/ldap/conditions_2_filter.rb
172
+ - lib/ldap/array.rb
173
+ - spec/multi_value_attributes_spec.rb
174
+ - spec/sorting_spec.rb
175
+ - spec/multi_repository_spec.rb
176
+ - spec/spec_helper.rb
177
+ - spec/ldap_adapter_spec.rb
178
+ - spec/authentication_ldap_adapter_spec.rb
179
+ - spec/assiociations_ldap_adapter_spec.rb
180
+ - spec/ldap_array_spec.rb
181
+ - spec/support/group_user.rb
182
+ - spec/support/user.rb
183
+ - spec/support/test_contact.rb
184
+ - spec/support/role.rb
185
+ - spec/support/group.rb
186
+ - example/posix.rb
272
187
  homepage: http://github.com/mkristian/dm-ldap-adapter
273
- licenses:
274
- - MIT-LICENSE
275
- post_install_message:
276
- rdoc_options:
277
- - --main
278
- - README.txt
279
- require_paths:
280
- - lib
281
- required_ruby_version: !ruby/object:Gem::Requirement
188
+ licenses: []
189
+ post_install_message:
190
+ rdoc_options:
191
+ - "--main"
192
+ - README.txt
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: !binary |-
200
+ MA==
282
201
  none: false
283
- requirements:
284
- - - ">="
285
- - !ruby/object:Gem::Version
286
- version: "0"
287
- required_rubygems_version: !ruby/object:Gem::Requirement
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: !binary |-
207
+ MA==
288
208
  none: false
289
- requirements:
290
- - - ">="
291
- - !ruby/object:Gem::Version
292
- version: "0"
293
209
  requirements: []
294
-
295
- rubyforge_project:
296
- rubygems_version: 1.8.9
297
- signing_key:
210
+ rubyforge_project:
211
+ rubygems_version: 1.8.24
212
+ signing_key:
298
213
  specification_version: 3
299
- summary: ""
300
- test_files:
301
- - spec/multi_value_attributes_spec.rb
302
- - spec/sorting_spec.rb
303
- - spec/multi_repository_spec.rb
304
- - spec/ldap_adapter_spec.rb
305
- - spec/authentication_ldap_adapter_spec.rb
306
- - spec/assiociations_ldap_adapter_spec.rb
307
- - spec/ldap_array_spec.rb
214
+ summary: ''
215
+ test_files: []
@@ -1,65 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'dm-core/version'
4
- p DataMapper::VERSION
5
- describe DataMapper.repository(:ldap).adapter do
6
-
7
- describe 'sorting of big list' do
8
-
9
- before do
10
- DataMapper.repository(:ldap) do
11
- #User.all.destroy!
12
- first = 1501
13
- len = 1500
14
- (first..len).each do |i|
15
- p i
16
- Contact.create(:id => "login#{i}", :sn => "name#{Kernel.rand}")
17
- end
18
- end
19
- end
20
-
21
- it 'should load all and sort in timely manner' do
22
- expected = nil
23
- all = nil
24
-
25
- DataMapper.repository(:ldap) do
26
- #puts User.all.collect {|u| u.name }.join("\n")
27
- #p User.all.size
28
- fields = Contact.properties.defaults.dup.<<(Contact.properties[:mobile])
29
- start = Time.new
30
- all = Contact.all(:fields => fields)
31
- intermediate = Time.new
32
- all.each { |a| a.mobile }
33
- finished = Time.new
34
-
35
- p intermediate - start
36
- p finished - intermediate
37
- p finished - start
38
-
39
- end
40
- puts
41
- DataMapper.repository(:ldap) do
42
- #puts User.all.collect {|u| u.name }.join("\n")
43
- #p User.all.size
44
- fields = Contact.properties.defaults.dup.<<(Contact.properties[:mobile])
45
- start = Time.new
46
- all = Contact.all(:order => [:sn], :fields => fields)
47
- intermediate = Time.new
48
- all.each { |a| a.inspect }
49
- finished = Time.new
50
- expected = all.dup.sort do |u1, u2|
51
- u1.sn.upcase <=> u2.sn.upcase
52
- end
53
-
54
- p intermediate - start
55
- p finished - intermediate
56
- p finished - start
57
-
58
- # all.should == expected
59
- end
60
- #p all#.collect {|u| u.name }.join("\n")
61
-
62
- end
63
- end
64
-
65
- end
@@ -1,2 +0,0 @@
1
- --colour
2
- --loadby random
@@ -1,58 +0,0 @@
1
- class Contact
2
- include DataMapper::Resource
3
-
4
- def self.auto_upgrade!(args = nil)
5
- DataMapper.logger.warn("Skipping #{self.name}.auto_upgrade!")
6
- end
7
-
8
- def self.default_repository_name
9
- :ldap
10
- end
11
-
12
- def self.repository_name
13
- :ldap
14
- end
15
-
16
- property :id, Serial, :field => 'uid'
17
- property :cn, String, :required => true
18
- property :salutation, String, :lazy => [:view]
19
- property :title, String, :lazy => [:view]
20
- property :givenname, String
21
- property :sn, String, :required => true
22
- property :o, String
23
- property :postaladdress, String, :lazy => [:view]
24
- property :postalcode, String, :lazy => [:view]
25
- property :l, String
26
- property :st, String, :lazy => [:view]
27
- property :c, String, :lazy => [:view]
28
- property :telephonenumber, String
29
- property :facsimiletelephonenumber, String, :lazy => [:view]
30
- property :pager, String, :lazy => [:view]
31
- property :jpegphoto, LdapArray, :lazy => true
32
- property :mobile, String, :lazy => [:view]
33
- property :anniversary, String, :lazy => [:view]
34
- property :mail, LdapArray
35
- property :labeleduri, LdapArray, :lazy => [:view]
36
- property :marker, LdapArray, :lazy => [:view]
37
- property :description, LdapArray, :lazy => [:view]
38
-
39
- dn_prefix do |u|
40
- "uid=#{u.id}"
41
- end
42
-
43
- ldap_properties do |u|
44
- properties = { :objectclass => ['inetOrgPerson']}#, "posixAccount", "shadowAccount"]}#'contactPerson'] }
45
- properties
46
- end
47
-
48
- treebase 'ou=people'
49
-
50
- before :save, :fix_object
51
-
52
- private
53
-
54
- def fix_object
55
- self.cn = "#{self.givenname} #{self.sn}".strip
56
- end
57
-
58
- end
@@ -1,16 +0,0 @@
1
- #This needs some documentation.
2
-
3
- module DataMapper
4
- module Resource
5
- class State
6
-
7
- # a persisted/deleted resource
8
- class Deleted < Persisted
9
- def set(subject, value)
10
- warn 'Deleted resource cannot be modified ' + subject.inspect + ' ' + value.to_s + " " + @resource.inspect
11
- super
12
- end
13
- end
14
- end
15
- end
16
- end