dm-ldap-adapter 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-ldap-adapter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 5
10
- version: 0.4.5
9
+ - 6
10
+ version: 0.4.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - mkristian
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-12-14 00:00:00 Z
19
+ date: 2013-04-10 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: net-ldap
@@ -26,12 +26,11 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 19
29
+ hash: 15
30
30
  segments:
31
31
  - 0
32
32
  - 2
33
- - 2
34
- version: 0.2.2
33
+ version: "0.2"
35
34
  type: :runtime
36
35
  version_requirements: *id001
37
36
  - !ruby/object:Gem::Dependency
@@ -118,34 +117,17 @@ dependencies:
118
117
  requirements:
119
118
  - - ~>
120
119
  - !ruby/object:Gem::Version
121
- hash: 23
120
+ hash: 15
122
121
  segments:
123
122
  - 2
124
123
  - 6
125
- - 0
126
- version: 2.6.0
124
+ version: "2.6"
127
125
  type: :development
128
126
  version_requirements: *id007
129
- - !ruby/object:Gem::Dependency
130
- name: bundler
131
- prerelease: false
132
- requirement: &id008 !ruby/object:Gem::Requirement
133
- none: false
134
- requirements:
135
- - - ~>
136
- - !ruby/object:Gem::Version
137
- hash: 9
138
- segments:
139
- - 1
140
- - 0
141
- - 15
142
- version: 1.0.15
143
- type: :development
144
- version_requirements: *id008
145
127
  - !ruby/object:Gem::Dependency
146
128
  name: ruby-ldap
147
129
  prerelease: false
148
- requirement: &id009 !ruby/object:Gem::Requirement
130
+ requirement: &id008 !ruby/object:Gem::Requirement
149
131
  none: false
150
132
  requirements:
151
133
  - - ~>
@@ -157,7 +139,7 @@ dependencies:
157
139
  - 11
158
140
  version: 0.9.11
159
141
  type: :development
160
- version_requirements: *id009
142
+ version_requirements: *id008
161
143
  description: ldap adapter for datamapper which uses either net-ldap or ruby-ldap
162
144
  email:
163
145
  - m.kristian@web.de
@@ -234,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
216
  requirements: []
235
217
 
236
218
  rubyforge_project:
237
- rubygems_version: 1.7.2
219
+ rubygems_version: 1.8.15
238
220
  signing_key:
239
221
  specification_version: 3
240
222
  summary: ""