dm-ldap-adapter 0.4.3-java → 0.4.4-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/lib/adapters/ldap_adapter.rb +17 -7
- data/lib/dm-ldap-adapter.rb +2 -1
- data/lib/ldap/net_ldap_facade.rb +1 -0
- data/lib/ldap_resource.rb +16 -4
- data/spec/assiociations_ldap_adapter_spec.rb +0 -1
- data/spec/authentication_ldap_adapter_spec.rb +0 -1
- data/spec/ldap_adapter_spec.rb +9 -1
- data/spec/ldap_array_spec.rb +1 -6
- data/spec/multi_repository_spec.rb +0 -1
- data/spec/multi_value_attributes_spec.rb +0 -27
- data/spec/performance_spec.rb.omit +0 -2
- data/spec/sorting_spec.rb +1 -2
- data/spec/spec_helper.rb +11 -138
- data/spec/{contact.rb → support/contact.rb.omit} +0 -0
- data/spec/support/group.rb +11 -0
- data/spec/support/group_user.rb +32 -0
- data/spec/support/resource_state.rb- +16 -0
- data/spec/support/role.rb +13 -0
- data/spec/support/test_contact.rb +25 -0
- data/spec/support/user.rb +59 -0
- metadata +53 -100
|
@@ -28,17 +28,27 @@ module Ldap
|
|
|
28
28
|
end
|
|
29
29
|
logger.info("using #{@facade}")
|
|
30
30
|
@ldaps = { }
|
|
31
|
-
auth = {
|
|
32
|
-
:method => :simple,
|
|
33
|
-
:username => options[:bind_name],
|
|
34
|
-
:password => options[:password]
|
|
35
|
-
}
|
|
36
31
|
@config = {
|
|
37
32
|
:host => options[:host],
|
|
38
33
|
:port => options[:port].to_i,
|
|
39
|
-
:auth => auth,
|
|
40
34
|
:base => options[:base]
|
|
41
35
|
}
|
|
36
|
+
|
|
37
|
+
if not options[:bind_name].nil? then
|
|
38
|
+
@config.update({
|
|
39
|
+
:auth => {
|
|
40
|
+
:method => :simple,
|
|
41
|
+
:username => options[:bind_name],
|
|
42
|
+
:password => options[:password]
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
if not options[:adapter_options].nil? then
|
|
48
|
+
options[:adapter_options].each do |k,v|
|
|
49
|
+
@config[k.to_sym] = v
|
|
50
|
+
end
|
|
51
|
+
end
|
|
42
52
|
end
|
|
43
53
|
|
|
44
54
|
# puts a LdapFacade into the current thread and executes the
|
|
@@ -178,7 +188,7 @@ module DataMapper
|
|
|
178
188
|
end
|
|
179
189
|
|
|
180
190
|
def update(attributes, collection)
|
|
181
|
-
collection.each do |resource|
|
|
191
|
+
size = collection.each do |resource|
|
|
182
192
|
#puts "update"
|
|
183
193
|
#p resource
|
|
184
194
|
update_resource(resource, attributes)
|
data/lib/dm-ldap-adapter.rb
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'slf4r'
|
|
2
|
+
require 'adapters/ldap_adapter'
|
data/lib/ldap/net_ldap_facade.rb
CHANGED
data/lib/ldap_resource.rb
CHANGED
|
@@ -4,7 +4,15 @@ require 'ldap/array'
|
|
|
4
4
|
|
|
5
5
|
module DataMapper
|
|
6
6
|
module Model
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
if DataMapper::VERSION =~ /^1.[0-1]/
|
|
9
|
+
Immutable = Resource::State::Immutable
|
|
10
|
+
Clean = Resource::State::Clean
|
|
11
|
+
else
|
|
12
|
+
Immutable = Resource::PersistenceState::Immutable
|
|
13
|
+
Clean = Resource::PersistenceState::Clean
|
|
14
|
+
end
|
|
15
|
+
|
|
8
16
|
def load(records, query)
|
|
9
17
|
repository = query.repository
|
|
10
18
|
repository_name = repository.name
|
|
@@ -67,13 +75,17 @@ module DataMapper
|
|
|
67
75
|
resource.instance_variable_set(:@_repository, repository)
|
|
68
76
|
|
|
69
77
|
if identity_map
|
|
70
|
-
|
|
71
|
-
|
|
78
|
+
if DataMapper::VERSION =~ /^1.[0-1]/
|
|
79
|
+
resource.persisted_state = Clean.new(resource) unless resource.persisted_state?
|
|
80
|
+
else
|
|
81
|
+
resource.persistence_state = Clean.new(resource) unless resource.persistence_state?
|
|
82
|
+
end
|
|
83
|
+
|
|
72
84
|
# defer setting the IdentityMap so second level caches can
|
|
73
85
|
# record the state of the resource after loaded
|
|
74
86
|
identity_map[key_values] = resource
|
|
75
87
|
else
|
|
76
|
-
resource.persisted_state =
|
|
88
|
+
resource.persisted_state = Immutable.new(resource)
|
|
77
89
|
end
|
|
78
90
|
|
|
79
91
|
resource
|
data/spec/ldap_adapter_spec.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
$LOAD_PATH << File.dirname(__FILE__)
|
|
2
1
|
require 'spec_helper'
|
|
3
2
|
require 'ldap/transactions'
|
|
4
3
|
|
|
@@ -50,6 +49,15 @@ describe DataMapper::Adapters::LdapAdapter do
|
|
|
50
49
|
end
|
|
51
50
|
end
|
|
52
51
|
|
|
52
|
+
it 'should return false if save fails' do
|
|
53
|
+
DataMapper.repository(:ldap) do
|
|
54
|
+
u = User.first(:login.not => "black")
|
|
55
|
+
u.age = 'some error'
|
|
56
|
+
u.save.should be_false
|
|
57
|
+
#p User.all
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
53
61
|
it 'should be able to get all the objects' do
|
|
54
62
|
DataMapper.repository(:ldap) do
|
|
55
63
|
User.all(:login.like => "b%").should == [@user1, @user2, @user3]
|
data/spec/ldap_array_spec.rb
CHANGED
|
@@ -1,32 +1,5 @@
|
|
|
1
|
-
$LOAD_PATH << File.dirname(__FILE__)
|
|
2
1
|
require 'spec_helper'
|
|
3
2
|
|
|
4
|
-
class TestContact
|
|
5
|
-
include DataMapper::Resource
|
|
6
|
-
|
|
7
|
-
property :id, Serial, :field => "uidNumber"
|
|
8
|
-
property :login, String, :field => "uid", :unique_index => true
|
|
9
|
-
property :hashed_password, String, :field => "userPassword", :lazy => true
|
|
10
|
-
property :name, String, :field => "cn"
|
|
11
|
-
property :mail, ::Ldap::LdapArray
|
|
12
|
-
|
|
13
|
-
dn_prefix { |contact| "uid=#{contact.login}"}
|
|
14
|
-
|
|
15
|
-
treebase "ou=people"
|
|
16
|
-
|
|
17
|
-
ldap_properties do |contact|
|
|
18
|
-
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
|
|
19
|
-
properties[:sn] = "#{contact.name.sub(/.*\ /, "")}"
|
|
20
|
-
properties[:givenname] = "#{contact.name.sub(/\ .*/, "")}"
|
|
21
|
-
properties[:homedirectory] = "/home/#{contact.login}"
|
|
22
|
-
properties
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def password=(password)
|
|
26
|
-
attribute_set(:hashed_password, Ldap::Digest.ssha(password, "--#{Time.now}--#{login}--")) if password
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
3
|
describe DataMapper.repository(:ldap).adapter.class do
|
|
31
4
|
|
|
32
5
|
describe 'LdapArray' do
|
data/spec/sorting_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'slf4r/ruby_logger'
|
|
4
|
-
Slf4r::LoggerFacade4RubyLogger.level = :warn
|
|
1
|
+
#Require main environment
|
|
2
|
+
require 'dm-ldap-adapter'
|
|
5
3
|
|
|
4
|
+
#Require developer depdencies
|
|
6
5
|
require 'dm-sqlite-adapter'
|
|
7
6
|
require 'dm-migrations'
|
|
8
|
-
require 'dm-transactions'
|
|
9
|
-
require 'pathname'
|
|
10
|
-
$LOAD_PATH << Pathname(__FILE__).dirname.parent.expand_path + 'lib'
|
|
11
7
|
|
|
12
8
|
print "datamapper version:"
|
|
13
9
|
puts DataMapper::VERSION
|
|
14
10
|
|
|
11
|
+
#Logging needs to be cleaned up...
|
|
12
|
+
require 'slf4r/ruby_logger'
|
|
13
|
+
Slf4r::LoggerFacade4RubyLogger.level = :warn
|
|
14
|
+
|
|
15
15
|
require 'ldap_resource'
|
|
16
|
-
require 'adapters/ldap_adapter'
|
|
17
16
|
|
|
18
17
|
DataMapper.setup(:default, 'sqlite3::memory:')
|
|
19
18
|
DataMapper.setup(:ldap, {
|
|
@@ -28,136 +27,10 @@ DataMapper.setup(:ldap, {
|
|
|
28
27
|
|
|
29
28
|
puts "using facade #{(ENV['FACADE'] || :net_ldap).to_sym}"
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
30
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
31
|
+
# in spec/support/ and its subdirectories.
|
|
32
|
+
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}
|
|
104
33
|
|
|
105
|
-
|
|
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
|
|
34
|
+
DataMapper.auto_migrate!(:default)
|
|
154
35
|
|
|
155
|
-
def user
|
|
156
|
-
User.get!(user_id)
|
|
157
|
-
end
|
|
158
36
|
|
|
159
|
-
def user=(user)
|
|
160
|
-
user_id = user.id
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
DataMapper.auto_migrate!(:default)
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class Group
|
|
2
|
+
include DataMapper::Resource
|
|
3
|
+
property :id, Serial, :field => "gidNumber"
|
|
4
|
+
property :name, String, :field => "cn"
|
|
5
|
+
|
|
6
|
+
dn_prefix { |group| "cn=#{group.name}" }
|
|
7
|
+
|
|
8
|
+
treebase "ou=groups"
|
|
9
|
+
|
|
10
|
+
ldap_properties {{:objectclass => "posixGroup"}}
|
|
11
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class GroupUser
|
|
2
|
+
include DataMapper::Resource
|
|
3
|
+
|
|
4
|
+
dn_prefix { |group_user| "cn=#{group_user.group.name}" }
|
|
5
|
+
|
|
6
|
+
treebase "ou=groups"
|
|
7
|
+
|
|
8
|
+
multivalue_field :memberUid
|
|
9
|
+
|
|
10
|
+
ldap_properties do |group_user|
|
|
11
|
+
{:cn=>"#{group_user.group.name}", :objectclass => "posixGroup"}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
property :user_id, String, :key => true, :field => "memberUid"
|
|
15
|
+
property :group_id, Integer, :key => true, :field => "gidNumber"
|
|
16
|
+
|
|
17
|
+
def group
|
|
18
|
+
Group.get!(group_id)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def group=(group)
|
|
22
|
+
group_id = group.id
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def user
|
|
26
|
+
User.get!(user_id)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def user=(user)
|
|
30
|
+
user_id = user.id
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class Role
|
|
2
|
+
include DataMapper::Resource
|
|
3
|
+
property :id, Serial, :field => "gidNumber"
|
|
4
|
+
property :name, String, :field => "cn"
|
|
5
|
+
|
|
6
|
+
dn_prefix { |role| "cn=#{role.name}" }
|
|
7
|
+
|
|
8
|
+
treebase "ou=groups"
|
|
9
|
+
|
|
10
|
+
ldap_properties {{:objectclass => "posixGroup"}}
|
|
11
|
+
|
|
12
|
+
belongs_to :user
|
|
13
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class TestContact
|
|
2
|
+
include DataMapper::Resource
|
|
3
|
+
|
|
4
|
+
property :id, Serial, :field => "uidNumber"
|
|
5
|
+
property :login, String, :field => "uid", :unique_index => true
|
|
6
|
+
property :hashed_password, String, :field => "userPassword", :lazy => true
|
|
7
|
+
property :name, String, :field => "cn"
|
|
8
|
+
property :mail, ::Ldap::LdapArray
|
|
9
|
+
|
|
10
|
+
dn_prefix { |contact| "uid=#{contact.login}"}
|
|
11
|
+
|
|
12
|
+
treebase "ou=people"
|
|
13
|
+
|
|
14
|
+
ldap_properties do |contact|
|
|
15
|
+
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
|
|
16
|
+
properties[:sn] = "#{contact.name.sub(/.*\ /, "")}"
|
|
17
|
+
properties[:givenname] = "#{contact.name.sub(/\ .*/, "")}"
|
|
18
|
+
properties[:homedirectory] = "/home/#{contact.login}"
|
|
19
|
+
properties
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def password=(password)
|
|
23
|
+
attribute_set(:hashed_password, Ldap::Digest.ssha(password, "--#{Time.now}--#{login}--")) if password
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
class User
|
|
2
|
+
include DataMapper::Resource
|
|
3
|
+
property :id, Serial, :field => "uidnumber"
|
|
4
|
+
property :login, String, :field => "uid", :unique_index => true
|
|
5
|
+
property :hashed_password, String, :field => "userPassword", :writer => :private
|
|
6
|
+
property :name, String, :field => "cn"
|
|
7
|
+
property :mail, String
|
|
8
|
+
property :age, Integer, :field => "postalCode"
|
|
9
|
+
property :alive, Boolean, :field => "gecos"
|
|
10
|
+
|
|
11
|
+
has n, :roles
|
|
12
|
+
|
|
13
|
+
has n, :group_users
|
|
14
|
+
|
|
15
|
+
def groups
|
|
16
|
+
groups = GroupUser.all(:user_id => login).collect{ |gu| gu.group }
|
|
17
|
+
|
|
18
|
+
def groups.user=(user)
|
|
19
|
+
@user = user
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
groups.user = self
|
|
23
|
+
|
|
24
|
+
def groups.<<(group)
|
|
25
|
+
unless member? group
|
|
26
|
+
GroupUser.create(:user_id => @user.login, :group_id => group.id)
|
|
27
|
+
super
|
|
28
|
+
end
|
|
29
|
+
self
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def groups.delete(group)
|
|
33
|
+
gu = GroupUser.first(:user_id => @user.login, :group_id => group.id)
|
|
34
|
+
if gu
|
|
35
|
+
gu.destroy
|
|
36
|
+
super
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
groups
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
dn_prefix { |user| "uid=#{user.login}"}
|
|
44
|
+
|
|
45
|
+
treebase "ou=people"
|
|
46
|
+
|
|
47
|
+
ldap_properties do |user|
|
|
48
|
+
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
|
|
49
|
+
properties[:sn] = "#{user.name.sub(/.*\ /, "")}"
|
|
50
|
+
properties[:givenname] = "#{user.name.sub(/\ .*/, "")}"
|
|
51
|
+
properties[:homedirectory] = "/home/#{user.login}"
|
|
52
|
+
properties
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def password=(password)
|
|
56
|
+
salt = "--#{Time.now}--#{login}--"
|
|
57
|
+
attribute_set(:hashed_password, Ldap::Digest.ssha(password, salt)) if password
|
|
58
|
+
end
|
|
59
|
+
end
|
metadata
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dm-ldap-adapter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
prerelease:
|
|
5
|
-
|
|
6
|
-
- 0
|
|
7
|
-
- 4
|
|
8
|
-
- 3
|
|
9
|
-
version: 0.4.3
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 0.4.4
|
|
10
6
|
platform: java
|
|
11
7
|
authors:
|
|
12
8
|
- mkristian
|
|
@@ -15,20 +11,16 @@ autorequire:
|
|
|
15
11
|
bindir: bin
|
|
16
12
|
cert_chain: []
|
|
17
13
|
|
|
18
|
-
date: 2011-
|
|
19
|
-
default_executable:
|
|
14
|
+
date: 2011-12-03 00:00:00 Z
|
|
20
15
|
dependencies:
|
|
21
16
|
- !ruby/object:Gem::Dependency
|
|
22
17
|
name: net-ldap
|
|
23
18
|
prerelease: false
|
|
24
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
|
+
none: false
|
|
25
21
|
requirements:
|
|
26
22
|
- - "="
|
|
27
23
|
- !ruby/object:Gem::Version
|
|
28
|
-
segments:
|
|
29
|
-
- 0
|
|
30
|
-
- 2
|
|
31
|
-
- 2
|
|
32
24
|
version: 0.2.2
|
|
33
25
|
type: :runtime
|
|
34
26
|
version_requirements: *id001
|
|
@@ -36,13 +28,10 @@ dependencies:
|
|
|
36
28
|
name: slf4r
|
|
37
29
|
prerelease: false
|
|
38
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
31
|
+
none: false
|
|
39
32
|
requirements:
|
|
40
33
|
- - "="
|
|
41
34
|
- !ruby/object:Gem::Version
|
|
42
|
-
segments:
|
|
43
|
-
- 0
|
|
44
|
-
- 4
|
|
45
|
-
- 2
|
|
46
35
|
version: 0.4.2
|
|
47
36
|
type: :runtime
|
|
48
37
|
version_requirements: *id002
|
|
@@ -50,27 +39,21 @@ dependencies:
|
|
|
50
39
|
name: dm-core
|
|
51
40
|
prerelease: false
|
|
52
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
42
|
+
none: false
|
|
53
43
|
requirements:
|
|
54
44
|
- - "="
|
|
55
45
|
- !ruby/object:Gem::Version
|
|
56
|
-
|
|
57
|
-
- 1
|
|
58
|
-
- 1
|
|
59
|
-
- 0
|
|
60
|
-
version: 1.1.0
|
|
46
|
+
version: 1.2.0
|
|
61
47
|
type: :runtime
|
|
62
48
|
version_requirements: *id003
|
|
63
49
|
- !ruby/object:Gem::Dependency
|
|
64
50
|
name: addressable
|
|
65
51
|
prerelease: false
|
|
66
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
53
|
+
none: false
|
|
67
54
|
requirements:
|
|
68
55
|
- - "="
|
|
69
56
|
- !ruby/object:Gem::Version
|
|
70
|
-
segments:
|
|
71
|
-
- 2
|
|
72
|
-
- 2
|
|
73
|
-
- 6
|
|
74
57
|
version: 2.2.6
|
|
75
58
|
type: :runtime
|
|
76
59
|
version_requirements: *id004
|
|
@@ -78,99 +61,76 @@ dependencies:
|
|
|
78
61
|
name: dm-transactions
|
|
79
62
|
prerelease: false
|
|
80
63
|
requirement: &id005 !ruby/object:Gem::Requirement
|
|
64
|
+
none: false
|
|
81
65
|
requirements:
|
|
82
66
|
- - "="
|
|
83
67
|
- !ruby/object:Gem::Version
|
|
84
|
-
|
|
85
|
-
- 1
|
|
86
|
-
- 1
|
|
87
|
-
- 0
|
|
88
|
-
version: 1.1.0
|
|
68
|
+
version: 1.2.0
|
|
89
69
|
type: :runtime
|
|
90
70
|
version_requirements: *id005
|
|
91
71
|
- !ruby/object:Gem::Dependency
|
|
92
72
|
name: dm-sqlite-adapter
|
|
93
73
|
prerelease: false
|
|
94
74
|
requirement: &id006 !ruby/object:Gem::Requirement
|
|
75
|
+
none: false
|
|
95
76
|
requirements:
|
|
96
77
|
- - "="
|
|
97
78
|
- !ruby/object:Gem::Version
|
|
98
|
-
|
|
99
|
-
- 1
|
|
100
|
-
- 1
|
|
101
|
-
- 0
|
|
102
|
-
version: 1.1.0
|
|
79
|
+
version: 1.2.0
|
|
103
80
|
type: :development
|
|
104
81
|
version_requirements: *id006
|
|
105
82
|
- !ruby/object:Gem::Dependency
|
|
106
83
|
name: dm-do-adapter
|
|
107
84
|
prerelease: false
|
|
108
85
|
requirement: &id007 !ruby/object:Gem::Requirement
|
|
86
|
+
none: false
|
|
109
87
|
requirements:
|
|
110
88
|
- - "="
|
|
111
89
|
- !ruby/object:Gem::Version
|
|
112
|
-
|
|
113
|
-
- 1
|
|
114
|
-
- 1
|
|
115
|
-
- 0
|
|
116
|
-
version: 1.1.0
|
|
90
|
+
version: 1.2.0
|
|
117
91
|
type: :runtime
|
|
118
92
|
version_requirements: *id007
|
|
119
93
|
- !ruby/object:Gem::Dependency
|
|
120
94
|
name: data_objects
|
|
121
95
|
prerelease: false
|
|
122
96
|
requirement: &id008 !ruby/object:Gem::Requirement
|
|
97
|
+
none: false
|
|
123
98
|
requirements:
|
|
124
99
|
- - "="
|
|
125
100
|
- !ruby/object:Gem::Version
|
|
126
|
-
|
|
127
|
-
- 0
|
|
128
|
-
- 10
|
|
129
|
-
- 6
|
|
130
|
-
version: 0.10.6
|
|
101
|
+
version: 0.10.7
|
|
131
102
|
type: :runtime
|
|
132
103
|
version_requirements: *id008
|
|
133
104
|
- !ruby/object:Gem::Dependency
|
|
134
105
|
name: do_sqlite3
|
|
135
106
|
prerelease: false
|
|
136
107
|
requirement: &id009 !ruby/object:Gem::Requirement
|
|
108
|
+
none: false
|
|
137
109
|
requirements:
|
|
138
110
|
- - "="
|
|
139
111
|
- !ruby/object:Gem::Version
|
|
140
|
-
|
|
141
|
-
- 0
|
|
142
|
-
- 10
|
|
143
|
-
- 6
|
|
144
|
-
version: 0.10.6
|
|
112
|
+
version: 0.10.7
|
|
145
113
|
type: :runtime
|
|
146
114
|
version_requirements: *id009
|
|
147
115
|
- !ruby/object:Gem::Dependency
|
|
148
116
|
name: do_jdbc
|
|
149
117
|
prerelease: false
|
|
150
118
|
requirement: &id010 !ruby/object:Gem::Requirement
|
|
119
|
+
none: false
|
|
151
120
|
requirements:
|
|
152
121
|
- - "="
|
|
153
122
|
- !ruby/object:Gem::Version
|
|
154
|
-
|
|
155
|
-
- 0
|
|
156
|
-
- 10
|
|
157
|
-
- 6
|
|
158
|
-
version: 0.10.6
|
|
123
|
+
version: 0.10.7
|
|
159
124
|
type: :runtime
|
|
160
125
|
version_requirements: *id010
|
|
161
126
|
- !ruby/object:Gem::Dependency
|
|
162
127
|
name: jdbc-sqlite3
|
|
163
128
|
prerelease: false
|
|
164
129
|
requirement: &id011 !ruby/object:Gem::Requirement
|
|
130
|
+
none: false
|
|
165
131
|
requirements:
|
|
166
132
|
- - "="
|
|
167
133
|
- !ruby/object:Gem::Version
|
|
168
|
-
segments:
|
|
169
|
-
- 3
|
|
170
|
-
- 6
|
|
171
|
-
- 14
|
|
172
|
-
- 2
|
|
173
|
-
- 56
|
|
174
134
|
version: 3.6.14.2.056
|
|
175
135
|
type: :runtime
|
|
176
136
|
version_requirements: *id011
|
|
@@ -178,27 +138,21 @@ dependencies:
|
|
|
178
138
|
name: dm-migrations
|
|
179
139
|
prerelease: false
|
|
180
140
|
requirement: &id012 !ruby/object:Gem::Requirement
|
|
141
|
+
none: false
|
|
181
142
|
requirements:
|
|
182
143
|
- - "="
|
|
183
144
|
- !ruby/object:Gem::Version
|
|
184
|
-
|
|
185
|
-
- 1
|
|
186
|
-
- 1
|
|
187
|
-
- 0
|
|
188
|
-
version: 1.1.0
|
|
145
|
+
version: 1.2.0
|
|
189
146
|
type: :development
|
|
190
147
|
version_requirements: *id012
|
|
191
148
|
- !ruby/object:Gem::Dependency
|
|
192
149
|
name: rspec
|
|
193
150
|
prerelease: false
|
|
194
151
|
requirement: &id013 !ruby/object:Gem::Requirement
|
|
152
|
+
none: false
|
|
195
153
|
requirements:
|
|
196
154
|
- - "="
|
|
197
155
|
- !ruby/object:Gem::Version
|
|
198
|
-
segments:
|
|
199
|
-
- 2
|
|
200
|
-
- 6
|
|
201
|
-
- 0
|
|
202
156
|
version: 2.6.0
|
|
203
157
|
type: :development
|
|
204
158
|
version_requirements: *id013
|
|
@@ -206,13 +160,10 @@ dependencies:
|
|
|
206
160
|
name: rspec-core
|
|
207
161
|
prerelease: false
|
|
208
162
|
requirement: &id014 !ruby/object:Gem::Requirement
|
|
163
|
+
none: false
|
|
209
164
|
requirements:
|
|
210
165
|
- - "="
|
|
211
166
|
- !ruby/object:Gem::Version
|
|
212
|
-
segments:
|
|
213
|
-
- 2
|
|
214
|
-
- 6
|
|
215
|
-
- 2
|
|
216
167
|
version: 2.6.2
|
|
217
168
|
type: :runtime
|
|
218
169
|
version_requirements: *id014
|
|
@@ -220,13 +171,10 @@ dependencies:
|
|
|
220
171
|
name: rspec-expectations
|
|
221
172
|
prerelease: false
|
|
222
173
|
requirement: &id015 !ruby/object:Gem::Requirement
|
|
174
|
+
none: false
|
|
223
175
|
requirements:
|
|
224
176
|
- - "="
|
|
225
177
|
- !ruby/object:Gem::Version
|
|
226
|
-
segments:
|
|
227
|
-
- 2
|
|
228
|
-
- 6
|
|
229
|
-
- 0
|
|
230
178
|
version: 2.6.0
|
|
231
179
|
type: :runtime
|
|
232
180
|
version_requirements: *id015
|
|
@@ -234,44 +182,46 @@ dependencies:
|
|
|
234
182
|
name: diff-lcs
|
|
235
183
|
prerelease: false
|
|
236
184
|
requirement: &id016 !ruby/object:Gem::Requirement
|
|
185
|
+
none: false
|
|
237
186
|
requirements:
|
|
238
187
|
- - "="
|
|
239
188
|
- !ruby/object:Gem::Version
|
|
240
|
-
|
|
241
|
-
- 1
|
|
242
|
-
- 1
|
|
243
|
-
- 2
|
|
244
|
-
version: 1.1.2
|
|
189
|
+
version: 1.1.3
|
|
245
190
|
type: :runtime
|
|
246
191
|
version_requirements: *id016
|
|
247
192
|
- !ruby/object:Gem::Dependency
|
|
248
193
|
name: rspec-mocks
|
|
249
194
|
prerelease: false
|
|
250
195
|
requirement: &id017 !ruby/object:Gem::Requirement
|
|
196
|
+
none: false
|
|
251
197
|
requirements:
|
|
252
198
|
- - "="
|
|
253
199
|
- !ruby/object:Gem::Version
|
|
254
|
-
segments:
|
|
255
|
-
- 2
|
|
256
|
-
- 6
|
|
257
|
-
- 0
|
|
258
200
|
version: 2.6.0
|
|
259
201
|
type: :runtime
|
|
260
202
|
version_requirements: *id017
|
|
261
203
|
- !ruby/object:Gem::Dependency
|
|
262
|
-
name:
|
|
204
|
+
name: bundler
|
|
263
205
|
prerelease: false
|
|
264
206
|
requirement: &id018 !ruby/object:Gem::Requirement
|
|
207
|
+
none: false
|
|
265
208
|
requirements:
|
|
266
209
|
- - ">="
|
|
267
210
|
- !ruby/object:Gem::Version
|
|
268
|
-
segments:
|
|
269
|
-
- 0
|
|
270
|
-
- 0
|
|
271
|
-
- 0
|
|
272
211
|
version: 0.0.0
|
|
273
|
-
type: :
|
|
212
|
+
type: :development
|
|
274
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
|
|
275
225
|
description: ldap adapter for datamapper which uses either net-ldap or ruby-ldap
|
|
276
226
|
email:
|
|
277
227
|
- m.kristian@web.de
|
|
@@ -305,7 +255,6 @@ files:
|
|
|
305
255
|
- spec/multi_value_attributes_spec.rb
|
|
306
256
|
- spec/sorting_spec.rb
|
|
307
257
|
- spec/multi_repository_spec.rb
|
|
308
|
-
- spec/contact.rb
|
|
309
258
|
- spec/spec.opts
|
|
310
259
|
- spec/spec_helper.rb
|
|
311
260
|
- spec/ldap_adapter_spec.rb
|
|
@@ -313,7 +262,13 @@ files:
|
|
|
313
262
|
- spec/assiociations_ldap_adapter_spec.rb
|
|
314
263
|
- spec/ldap_array_spec.rb
|
|
315
264
|
- spec/performance_spec.rb.omit
|
|
316
|
-
|
|
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
|
|
317
272
|
homepage: http://github.com/mkristian/dm-ldap-adapter
|
|
318
273
|
licenses:
|
|
319
274
|
- MIT-LICENSE
|
|
@@ -324,23 +279,21 @@ rdoc_options:
|
|
|
324
279
|
require_paths:
|
|
325
280
|
- lib
|
|
326
281
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
282
|
+
none: false
|
|
327
283
|
requirements:
|
|
328
284
|
- - ">="
|
|
329
285
|
- !ruby/object:Gem::Version
|
|
330
|
-
segments:
|
|
331
|
-
- 0
|
|
332
286
|
version: "0"
|
|
333
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
288
|
+
none: false
|
|
334
289
|
requirements:
|
|
335
290
|
- - ">="
|
|
336
291
|
- !ruby/object:Gem::Version
|
|
337
|
-
segments:
|
|
338
|
-
- 0
|
|
339
292
|
version: "0"
|
|
340
293
|
requirements: []
|
|
341
294
|
|
|
342
295
|
rubyforge_project:
|
|
343
|
-
rubygems_version: 1.
|
|
296
|
+
rubygems_version: 1.8.9
|
|
344
297
|
signing_key:
|
|
345
298
|
specification_version: 3
|
|
346
299
|
summary: ""
|