dm-ldap-adapter 0.4.3 → 0.4.4
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/sorting_spec.rb +1 -2
- data/spec/spec_helper.rb +11 -138
- data/spec/support/group.rb +11 -0
- data/spec/support/group_user.rb +32 -0
- data/spec/support/role.rb +13 -0
- data/spec/support/test_contact.rb +25 -0
- data/spec/support/user.rb +59 -0
- metadata +28 -10
- data/spec/contact.rb +0 -58
@@ -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)
|
@@ -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,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,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-ldap-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 4
|
10
|
+
version: 0.4.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- mkristian
|
@@ -16,8 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
20
|
-
default_executable:
|
19
|
+
date: 2011-12-03 00:00:00 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: net-ldap
|
@@ -128,9 +127,25 @@ dependencies:
|
|
128
127
|
type: :development
|
129
128
|
version_requirements: *id007
|
130
129
|
- !ruby/object:Gem::Dependency
|
131
|
-
name:
|
130
|
+
name: bundler
|
132
131
|
prerelease: false
|
133
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
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: ruby-ldap
|
147
|
+
prerelease: false
|
148
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
134
149
|
none: false
|
135
150
|
requirements:
|
136
151
|
- - ~>
|
@@ -142,7 +157,7 @@ dependencies:
|
|
142
157
|
- 11
|
143
158
|
version: 0.9.11
|
144
159
|
type: :development
|
145
|
-
version_requirements: *
|
160
|
+
version_requirements: *id009
|
146
161
|
description: ldap adapter for datamapper which uses either net-ldap or ruby-ldap
|
147
162
|
email:
|
148
163
|
- m.kristian@web.de
|
@@ -178,14 +193,17 @@ files:
|
|
178
193
|
- spec/multi_value_attributes_spec.rb
|
179
194
|
- spec/sorting_spec.rb
|
180
195
|
- spec/multi_repository_spec.rb
|
181
|
-
- spec/contact.rb
|
182
196
|
- spec/spec_helper.rb
|
183
197
|
- spec/ldap_adapter_spec.rb
|
184
198
|
- spec/authentication_ldap_adapter_spec.rb
|
185
199
|
- spec/assiociations_ldap_adapter_spec.rb
|
186
200
|
- spec/ldap_array_spec.rb
|
201
|
+
- spec/support/group_user.rb
|
202
|
+
- spec/support/user.rb
|
203
|
+
- spec/support/test_contact.rb
|
204
|
+
- spec/support/role.rb
|
205
|
+
- spec/support/group.rb
|
187
206
|
- example/posix.rb
|
188
|
-
has_rdoc: true
|
189
207
|
homepage: http://github.com/mkristian/dm-ldap-adapter
|
190
208
|
licenses: []
|
191
209
|
|
@@ -216,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
234
|
requirements: []
|
217
235
|
|
218
236
|
rubyforge_project:
|
219
|
-
rubygems_version: 1.
|
237
|
+
rubygems_version: 1.7.2
|
220
238
|
signing_key:
|
221
239
|
specification_version: 3
|
222
240
|
summary: ""
|
data/spec/contact.rb
DELETED
@@ -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
|