activeldap 1.2.4 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +18 -0
- data/LICENSE +2 -1
- data/README.textile +137 -0
- data/doc/text/development.textile +50 -0
- data/{CHANGES → doc/text/news.textile} +256 -237
- data/doc/text/rails.textile +144 -0
- data/doc/text/tutorial.textile +1005 -0
- data/lib/active_ldap/adapter/base.rb +5 -3
- data/lib/active_ldap/adapter/net_ldap_ext.rb +1 -1
- data/lib/active_ldap/associations.rb +6 -2
- data/lib/active_ldap/base.rb +16 -71
- data/lib/active_ldap/callbacks.rb +52 -33
- data/lib/active_ldap/configuration.rb +2 -2
- data/lib/active_ldap/get_text/parser.rb +2 -2
- data/lib/active_ldap/human_readable.rb +5 -4
- data/lib/active_ldap/log_subscriber.rb +50 -0
- data/lib/active_ldap/persistence.rb +65 -0
- data/lib/active_ldap/railtie.rb +40 -0
- data/lib/active_ldap/railties/controller_runtime.rb +48 -0
- data/lib/active_ldap/user_password.rb +1 -0
- data/lib/active_ldap/validations.rb +34 -72
- data/lib/active_ldap.rb +13 -912
- data/{rails_generators/model_active_ldap → lib/rails/generators/active_ldap/model}/USAGE +2 -1
- data/lib/rails/generators/active_ldap/model/model_generator.rb +47 -0
- data/{rails_generators/model_active_ldap → lib/rails/generators/active_ldap/model}/templates/model_active_ldap.rb +0 -0
- data/lib/rails/generators/active_ldap/scaffold/scaffold_generator.rb +14 -0
- data/{rails_generators/scaffold_active_ldap → lib/rails/generators/active_ldap/scaffold}/templates/ldap.yml +1 -0
- data/test/test_base.rb +9 -0
- data/test/test_callback.rb +2 -6
- data/test/test_connection.rb +2 -2
- data/test/test_user.rb +2 -2
- data/test/test_validation.rb +11 -11
- metadata +165 -106
- data/README +0 -155
- data/Rakefile +0 -133
- data/rails/README +0 -54
- data/rails/init.rb +0 -33
- data/rails_generators/model_active_ldap/model_active_ldap_generator.rb +0 -69
- data/rails_generators/model_active_ldap/templates/unit_test.rb +0 -8
- data/rails_generators/scaffold_active_ldap/scaffold_active_ldap_generator.rb +0 -7
- data/test/al-test-utils.rb +0 -439
- data/test/command.rb +0 -112
- data/test/config.yaml.sample +0 -6
- data/test/fixtures/lower_case_object_class_schema.rb +0 -802
- data/test/run-test.rb +0 -44
@@ -8,10 +8,11 @@ Description:
|
|
8
8
|
test/fixtures/singular_name.yml. It will not create a migration.
|
9
9
|
|
10
10
|
Examples:
|
11
|
-
|
11
|
+
rails generate active_ldap:model user
|
12
12
|
|
13
13
|
This will create a User model:
|
14
14
|
Model: app/models/user.rb
|
15
15
|
Test: test/unit/user_test.rb
|
16
16
|
Fixtures: test/fixtures/users.yml
|
17
17
|
|
18
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'active_ldap'
|
3
|
+
|
4
|
+
module ActiveLdap
|
5
|
+
module Generators
|
6
|
+
class ModelGenerator < Rails::Generators::NamedBase
|
7
|
+
include ActiveLdap::GetTextSupport
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
|
+
|
10
|
+
class_option :dn_attribute, :type => :string, :default => 'cn',
|
11
|
+
:desc => _("Use ATTRIBUTE as default DN attribute for " \
|
12
|
+
"instances of this model")
|
13
|
+
class_option :prefix, :type => :string,
|
14
|
+
:desc => _("Use PREFIX as prefix for this model")
|
15
|
+
class_option :classes, :type => :array, :default => nil,
|
16
|
+
:desc => _("Use CLASSES as required objectClass for instances of this model")
|
17
|
+
|
18
|
+
def create_model
|
19
|
+
template 'model_active_ldap.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
20
|
+
end
|
21
|
+
|
22
|
+
hook_for :test_framework, :as => :model
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def prefix
|
27
|
+
options[:prefix] || default_prefix
|
28
|
+
end
|
29
|
+
|
30
|
+
def default_prefix
|
31
|
+
"ou=#{name.demodulize.pluralize}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def ldap_mapping(indent=' ')
|
35
|
+
mapping = "ldap_mapping "
|
36
|
+
mapping_options = [":dn_attribute => #{options[:dn_attribute].dump}"]
|
37
|
+
mapping_options << ":prefix => #{prefix.dump}"
|
38
|
+
if options[:classes]
|
39
|
+
mapping_options << ":classes => #{options[:classes].inspect}"
|
40
|
+
end
|
41
|
+
mapping_options = mapping_options.join(",\n#{indent}#{' ' * mapping.size}")
|
42
|
+
"#{indent}#{mapping}#{mapping_options}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module ActiveLdap
|
4
|
+
module Generators
|
5
|
+
class ScaffoldGenerator < Rails::Generators::Base
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
7
|
+
|
8
|
+
def create_ldap_yml
|
9
|
+
copy_file 'ldap.yml', 'config/ldap.yml'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
data/test/test_base.rb
CHANGED
@@ -1127,6 +1127,15 @@ EOX
|
|
1127
1127
|
end
|
1128
1128
|
end
|
1129
1129
|
|
1130
|
+
def test_to_key
|
1131
|
+
uid = "bob"
|
1132
|
+
new_user = @user_class.new
|
1133
|
+
assert_equal(nil, new_user.to_key)
|
1134
|
+
|
1135
|
+
new_user.uid = uid
|
1136
|
+
assert_equal([new_user.dn], new_user.to_key)
|
1137
|
+
end
|
1138
|
+
|
1130
1139
|
private
|
1131
1140
|
def detect_modify(object)
|
1132
1141
|
modify_called = false
|
data/test/test_callback.rb
CHANGED
@@ -14,12 +14,8 @@ class TestCallback < Test::Unit::TestCase
|
|
14
14
|
@group_class.instance_variable_set("@initialized_entries",
|
15
15
|
initialized_entries)
|
16
16
|
@group_class.module_eval do
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
define_method(:after_initialize) do
|
21
|
-
self.class.instance_variable_get("@initialized_entries") << self
|
22
|
-
end
|
17
|
+
after_find "self.class.instance_variable_get('@found_entries') << self"
|
18
|
+
after_initialize "self.class.instance_variable_get('@initialized_entries') << self"
|
23
19
|
end
|
24
20
|
|
25
21
|
assert_equal([], found_entries)
|
data/test/test_connection.rb
CHANGED
@@ -47,7 +47,7 @@ class TestConnection < Test::Unit::TestCase
|
|
47
47
|
raise
|
48
48
|
end
|
49
49
|
end
|
50
|
-
assert_equal("Unknown key
|
50
|
+
assert_equal("Unknown key: bind_format", exception.message)
|
51
51
|
end
|
52
52
|
|
53
53
|
def test_can_reconnect?
|
@@ -71,10 +71,10 @@ class TestConnection < Test::Unit::TestCase
|
|
71
71
|
|
72
72
|
priority :low
|
73
73
|
def test_retry_limit_0_with_nonexistent_host
|
74
|
+
omit("this test will take a long time...")
|
74
75
|
config = current_configuration.merge("host" => "192.168.29.29",
|
75
76
|
"retry_limit" => 0)
|
76
77
|
ActiveLdap::Base.setup_connection(config)
|
77
|
-
notify("maybe take a long time")
|
78
78
|
assert_raise(ActiveLdap::ConnectionError) do
|
79
79
|
ActiveLdap::Base.find(:first)
|
80
80
|
end
|
data/test/test_user.rb
CHANGED
@@ -65,7 +65,7 @@ class TestUser < Test::Unit::TestCase
|
|
65
65
|
assert_equal(see_also, user.see_also)
|
66
66
|
|
67
67
|
assert(!user.valid?)
|
68
|
-
assert(user.errors.
|
68
|
+
assert(user.errors[:sn].any?)
|
69
69
|
errors = %w(person organizationalPerson
|
70
70
|
inetOrgPerson).collect do |object_class|
|
71
71
|
if ActiveLdap.get_text_supported?
|
@@ -79,7 +79,7 @@ class TestUser < Test::Unit::TestCase
|
|
79
79
|
user._(format) % [object_class, "surname"]
|
80
80
|
end
|
81
81
|
end
|
82
|
-
assert_equal(errors.sort, user.errors
|
82
|
+
assert_equal(errors.sort, user.errors[:sn].sort)
|
83
83
|
user.sn = ['User']
|
84
84
|
assert(user.valid?)
|
85
85
|
assert_equal(0, user.errors.size)
|
data/test/test_validation.rb
CHANGED
@@ -12,7 +12,7 @@ class TestValidation < Test::Unit::TestCase
|
|
12
12
|
user1.id = user2.id
|
13
13
|
assert_false(user1.save)
|
14
14
|
|
15
|
-
format = la_('distinguishedName')
|
15
|
+
format = la_('distinguishedName').humanize
|
16
16
|
format << ' ' << _("is duplicated: %s")
|
17
17
|
assert_equal([format % [user2.dn.to_s]],
|
18
18
|
user1.errors.full_messages)
|
@@ -27,7 +27,7 @@ class TestValidation < Test::Unit::TestCase
|
|
27
27
|
user.jpeg_photo = "XXX"
|
28
28
|
assert_not_predicate(user, :save)
|
29
29
|
|
30
|
-
format = la_('jpegPhoto')
|
30
|
+
format = la_('jpegPhoto').humanize
|
31
31
|
format << ' ' << _("has invalid format: %s: required syntax: %s: %s")
|
32
32
|
arguments = [_("<binary-value>"),
|
33
33
|
lsd_("1.3.6.1.4.1.1466.115.121.1.28"),
|
@@ -73,7 +73,7 @@ class TestValidation < Test::Unit::TestCase
|
|
73
73
|
reason = _("attribute value is missing")
|
74
74
|
invalid_format = _("%s is invalid distinguished name (DN): %s")
|
75
75
|
invalid_message = invalid_format % ["uid==,#{user.class.base}", reason]
|
76
|
-
format = la_('distinguishedName')
|
76
|
+
format = la_('distinguishedName').humanize
|
77
77
|
format << ' ' << _("is invalid: %s")
|
78
78
|
message = format % invalid_message
|
79
79
|
assert_equal([message],
|
@@ -87,7 +87,7 @@ class TestValidation < Test::Unit::TestCase
|
|
87
87
|
reason = _("attribute value is missing")
|
88
88
|
invalid_format = _("%s is invalid distinguished name (DN): %s")
|
89
89
|
invalid_message = invalid_format % ["uid==,#{user.class.base}", reason]
|
90
|
-
format = la_('distinguishedName')
|
90
|
+
format = la_('distinguishedName').humanize
|
91
91
|
format << ' ' << _("is invalid: %s")
|
92
92
|
message = format % invalid_message
|
93
93
|
assert_equal([message], user.errors.full_messages)
|
@@ -99,7 +99,7 @@ class TestValidation < Test::Unit::TestCase
|
|
99
99
|
assert(user.valid?)
|
100
100
|
user.uid_number = ""
|
101
101
|
assert(!user.valid?)
|
102
|
-
format = la_('uidNumber')
|
102
|
+
format = la_('uidNumber').humanize
|
103
103
|
format << ' ' << _("is required attribute by objectClass '%s'")
|
104
104
|
blank_message = format % loc_("posixAccount")
|
105
105
|
assert_equal([blank_message], user.errors.full_messages)
|
@@ -111,7 +111,7 @@ class TestValidation < Test::Unit::TestCase
|
|
111
111
|
assert(user.save)
|
112
112
|
user.class.excluded_classes = ['person']
|
113
113
|
assert(!user.save)
|
114
|
-
format = la_("objectClass")
|
114
|
+
format = la_("objectClass").humanize
|
115
115
|
format << ' ' << n_("has excluded value: %s",
|
116
116
|
"has excluded values: %s",
|
117
117
|
1)
|
@@ -153,7 +153,7 @@ class TestValidation < Test::Unit::TestCase
|
|
153
153
|
user.add_class("strongAuthenticationUser")
|
154
154
|
user.user_certificate = nil
|
155
155
|
assert(!user.save)
|
156
|
-
assert(user.errors.
|
156
|
+
assert(user.errors[:userCertificate].any?)
|
157
157
|
assert_equal(1, user.errors.size)
|
158
158
|
end
|
159
159
|
end
|
@@ -183,7 +183,7 @@ class TestValidation < Test::Unit::TestCase
|
|
183
183
|
assert(ou_class.new("YYY").save)
|
184
184
|
ou = ou_class.new("YYY")
|
185
185
|
assert(!ou.save)
|
186
|
-
format = la_("distinguishedName")
|
186
|
+
format = la_("distinguishedName").humanize
|
187
187
|
format << ' ' << _("is duplicated: %s")
|
188
188
|
message = format % ou.dn
|
189
189
|
assert_equal([message], ou.errors.full_messages)
|
@@ -214,7 +214,7 @@ class TestValidation < Test::Unit::TestCase
|
|
214
214
|
|
215
215
|
@group_class.validates_presence_of(:description)
|
216
216
|
assert(!group.valid?)
|
217
|
-
assert(group.errors.
|
217
|
+
assert(group.errors[:description].any?)
|
218
218
|
assert_equal(1, group.errors.size)
|
219
219
|
end
|
220
220
|
end
|
@@ -225,7 +225,7 @@ class TestValidation < Test::Unit::TestCase
|
|
225
225
|
assert_not_nil(syntax_description)
|
226
226
|
params = [formatted_value, syntax_description, reason]
|
227
227
|
params.unshift(option) if option
|
228
|
-
localized_name = la_(name)
|
228
|
+
localized_name = la_(name).humanize
|
229
229
|
format = localized_name << ' '
|
230
230
|
if option
|
231
231
|
format << _("(%s) has invalid format: %s: required syntax: %s: %s")
|
@@ -245,7 +245,7 @@ class TestValidation < Test::Unit::TestCase
|
|
245
245
|
|
246
246
|
user.see_also = value
|
247
247
|
assert(!user.save)
|
248
|
-
assert(user.errors.
|
248
|
+
assert(user.errors[:seeAlso].any?)
|
249
249
|
assert_equal(1, user.errors.size)
|
250
250
|
|
251
251
|
reason_params = [invalid_value, _("attribute value is missing")]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeldap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
+
- 3
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
|
10
|
-
version: 1.2.4
|
9
|
+
- 0
|
10
|
+
version: 3.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Will Drewry
|
@@ -16,104 +16,166 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-07-09 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
27
|
+
hash: 15424109
|
30
28
|
segments:
|
31
|
-
- 2
|
32
29
|
- 3
|
33
|
-
-
|
34
|
-
|
30
|
+
- 1
|
31
|
+
- 0
|
32
|
+
- rc
|
33
|
+
- 4
|
34
|
+
version: 3.1.0.rc4
|
35
|
+
name: activemodel
|
36
|
+
prerelease: false
|
35
37
|
type: :runtime
|
36
|
-
|
38
|
+
requirement: *id001
|
37
39
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
39
|
-
prerelease: false
|
40
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- - "
|
43
|
+
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 3
|
46
46
|
segments:
|
47
|
-
- 2
|
48
47
|
- 0
|
49
|
-
|
50
|
-
|
48
|
+
version: "0"
|
49
|
+
name: locale
|
50
|
+
prerelease: false
|
51
51
|
type: :runtime
|
52
|
-
|
52
|
+
requirement: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
54
63
|
name: fast_gettext
|
55
64
|
prerelease: false
|
56
|
-
|
65
|
+
type: :runtime
|
66
|
+
requirement: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
57
69
|
none: false
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - ">="
|
60
72
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
73
|
+
hash: 3
|
62
74
|
segments:
|
63
75
|
- 0
|
64
|
-
|
65
|
-
|
66
|
-
|
76
|
+
version: "0"
|
77
|
+
name: gettext_i18n_rails
|
78
|
+
prerelease: false
|
67
79
|
type: :runtime
|
68
|
-
|
80
|
+
requirement: *id004
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
|
-
|
82
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
name: ruby-ldap
|
71
92
|
prerelease: false
|
72
|
-
|
93
|
+
type: :development
|
94
|
+
requirement: *id005
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
73
97
|
none: false
|
74
98
|
requirements:
|
75
|
-
- - "
|
99
|
+
- - ">="
|
76
100
|
- !ruby/object:Gem::Version
|
77
|
-
hash:
|
101
|
+
hash: 3
|
78
102
|
segments:
|
79
103
|
- 0
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
type: :
|
84
|
-
|
104
|
+
version: "0"
|
105
|
+
name: net-ldap
|
106
|
+
prerelease: false
|
107
|
+
type: :development
|
108
|
+
requirement: *id006
|
85
109
|
- !ruby/object:Gem::Dependency
|
86
|
-
|
110
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
hash: 3
|
116
|
+
segments:
|
117
|
+
- 0
|
118
|
+
version: "0"
|
119
|
+
name: jeweler
|
87
120
|
prerelease: false
|
88
|
-
|
121
|
+
type: :development
|
122
|
+
requirement: *id007
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
89
125
|
none: false
|
90
126
|
requirements:
|
91
127
|
- - ">="
|
92
128
|
- !ruby/object:Gem::Version
|
93
|
-
hash:
|
129
|
+
hash: 3
|
94
130
|
segments:
|
95
|
-
- 2
|
96
131
|
- 0
|
97
|
-
|
98
|
-
|
132
|
+
version: "0"
|
133
|
+
name: test-unit
|
134
|
+
prerelease: false
|
99
135
|
type: :development
|
100
|
-
|
136
|
+
requirement: *id008
|
101
137
|
- !ruby/object:Gem::Dependency
|
102
|
-
|
138
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
|
+
name: test-unit-notify
|
103
148
|
prerelease: false
|
104
|
-
|
149
|
+
type: :development
|
150
|
+
requirement: *id009
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
105
153
|
none: false
|
106
154
|
requirements:
|
107
155
|
- - ">="
|
108
156
|
- !ruby/object:Gem::Version
|
109
|
-
hash:
|
157
|
+
hash: 3
|
110
158
|
segments:
|
111
|
-
-
|
112
|
-
|
113
|
-
|
114
|
-
|
159
|
+
- 0
|
160
|
+
version: "0"
|
161
|
+
name: yard
|
162
|
+
prerelease: false
|
115
163
|
type: :development
|
116
|
-
|
164
|
+
requirement: *id010
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
hash: 3
|
172
|
+
segments:
|
173
|
+
- 0
|
174
|
+
version: "0"
|
175
|
+
name: RedCloth
|
176
|
+
prerelease: false
|
177
|
+
type: :development
|
178
|
+
requirement: *id011
|
117
179
|
description: " 'ActiveLdap' is a ruby extension library which provides a clean\n objected oriented interface to the Ruby/LDAP library. It was inspired\n by ActiveRecord. This is not nearly as clean or as flexible as\n ActiveRecord, but it is still trivial to define new objects and manipulate\n them with minimal difficulty.\n"
|
118
180
|
email:
|
119
181
|
- redpig@dataspill.org
|
@@ -123,19 +185,21 @@ executables: []
|
|
123
185
|
extensions: []
|
124
186
|
|
125
187
|
extra_rdoc_files:
|
126
|
-
- README
|
127
|
-
- CHANGES
|
128
|
-
- COPYING
|
129
188
|
- LICENSE
|
189
|
+
- README.textile
|
190
|
+
- TODO
|
130
191
|
files:
|
131
|
-
- CHANGES
|
132
192
|
- COPYING
|
193
|
+
- Gemfile
|
133
194
|
- LICENSE
|
134
|
-
- README
|
135
|
-
- Rakefile
|
195
|
+
- README.textile
|
136
196
|
- TODO
|
137
197
|
- benchmark/bench-al.rb
|
138
198
|
- benchmark/config.yaml.sample
|
199
|
+
- doc/text/development.textile
|
200
|
+
- doc/text/news.textile
|
201
|
+
- doc/text/rails.textile
|
202
|
+
- doc/text/tutorial.textile
|
139
203
|
- examples/config.yaml.example
|
140
204
|
- examples/example.der
|
141
205
|
- examples/example.jpg
|
@@ -194,9 +258,13 @@ files:
|
|
194
258
|
- lib/active_ldap/human_readable.rb
|
195
259
|
- lib/active_ldap/ldap_error.rb
|
196
260
|
- lib/active_ldap/ldif.rb
|
261
|
+
- lib/active_ldap/log_subscriber.rb
|
197
262
|
- lib/active_ldap/object_class.rb
|
198
263
|
- lib/active_ldap/operations.rb
|
264
|
+
- lib/active_ldap/persistence.rb
|
199
265
|
- lib/active_ldap/populate.rb
|
266
|
+
- lib/active_ldap/railtie.rb
|
267
|
+
- lib/active_ldap/railties/controller_runtime.rb
|
200
268
|
- lib/active_ldap/schema.rb
|
201
269
|
- lib/active_ldap/schema/syntaxes.rb
|
202
270
|
- lib/active_ldap/timeout.rb
|
@@ -204,65 +272,56 @@ files:
|
|
204
272
|
- lib/active_ldap/user_password.rb
|
205
273
|
- lib/active_ldap/validations.rb
|
206
274
|
- lib/active_ldap/xml.rb
|
275
|
+
- lib/rails/generators/active_ldap/model/USAGE
|
276
|
+
- lib/rails/generators/active_ldap/model/model_generator.rb
|
277
|
+
- lib/rails/generators/active_ldap/model/templates/model_active_ldap.rb
|
278
|
+
- lib/rails/generators/active_ldap/scaffold/scaffold_generator.rb
|
279
|
+
- lib/rails/generators/active_ldap/scaffold/templates/ldap.yml
|
207
280
|
- po/en/active-ldap.po
|
208
281
|
- po/ja/active-ldap.po
|
209
|
-
-
|
210
|
-
- rails/init.rb
|
211
|
-
- rails_generators/model_active_ldap/USAGE
|
212
|
-
- rails_generators/model_active_ldap/model_active_ldap_generator.rb
|
213
|
-
- rails_generators/model_active_ldap/templates/model_active_ldap.rb
|
214
|
-
- rails_generators/model_active_ldap/templates/unit_test.rb
|
215
|
-
- rails_generators/scaffold_active_ldap/scaffold_active_ldap_generator.rb
|
216
|
-
- rails_generators/scaffold_active_ldap/templates/ldap.yml
|
217
|
-
- test/al-test-utils.rb
|
218
|
-
- test/command.rb
|
219
|
-
- test/config.yaml.sample
|
220
|
-
- test/fixtures/lower_case_object_class_schema.rb
|
221
|
-
- test/run-test.rb
|
222
|
-
- test/test_acts_as_tree.rb
|
223
|
-
- test/test_adapter.rb
|
224
|
-
- test/test_associations.rb
|
225
|
-
- test/test_attributes.rb
|
226
|
-
- test/test_base.rb
|
227
|
-
- test/test_base_per_instance.rb
|
228
|
-
- test/test_bind.rb
|
229
|
-
- test/test_callback.rb
|
230
|
-
- test/test_configuration.rb
|
231
|
-
- test/test_connection.rb
|
232
|
-
- test/test_connection_per_class.rb
|
233
|
-
- test/test_connection_per_dn.rb
|
234
|
-
- test/test_dn.rb
|
235
|
-
- test/test_find.rb
|
282
|
+
- test/test_lpasswd.rb
|
236
283
|
- test/test_groupadd.rb
|
237
284
|
- test/test_groupdel.rb
|
285
|
+
- test/test_base_per_instance.rb
|
238
286
|
- test/test_groupls.rb
|
239
|
-
- test/
|
240
|
-
- test/
|
241
|
-
- test/
|
242
|
-
- test/
|
243
|
-
- test/test_object_class.rb
|
244
|
-
- test/test_reflection.rb
|
287
|
+
- test/test_connection_per_dn.rb
|
288
|
+
- test/test_connection.rb
|
289
|
+
- test/test_usermod-lang-add.rb
|
290
|
+
- test/test_associations.rb
|
245
291
|
- test/test_schema.rb
|
292
|
+
- test/test_dn.rb
|
293
|
+
- test/test_attributes.rb
|
294
|
+
- test/test_object_class.rb
|
295
|
+
- test/test_acts_as_tree.rb
|
296
|
+
- test/test_usermod-binary-add.rb
|
297
|
+
- test/test_find.rb
|
298
|
+
- test/test_bind.rb
|
299
|
+
- test/test_useradd-binary.rb
|
300
|
+
- test/test_callback.rb
|
301
|
+
- test/test_useradd.rb
|
302
|
+
- test/test_usermod.rb
|
246
303
|
- test/test_syntax.rb
|
304
|
+
- test/test_usermod-binary-add-time.rb
|
247
305
|
- test/test_user.rb
|
248
306
|
- test/test_user_password.rb
|
249
|
-
- test/
|
250
|
-
- test/
|
251
|
-
- test/
|
307
|
+
- test/test_base.rb
|
308
|
+
- test/test_adapter.rb
|
309
|
+
- test/test_groupmod.rb
|
310
|
+
- test/test_reflection.rb
|
311
|
+
- test/test_load.rb
|
312
|
+
- test/test_configuration.rb
|
252
313
|
- test/test_userls.rb
|
253
|
-
- test/
|
254
|
-
- test/test_usermod-binary-add.rb
|
255
|
-
- test/test_usermod-binary-del.rb
|
256
|
-
- test/test_usermod-lang-add.rb
|
257
|
-
- test/test_usermod.rb
|
314
|
+
- test/test_userdel.rb
|
258
315
|
- test/test_validation.rb
|
259
|
-
|
260
|
-
|
261
|
-
|
316
|
+
- test/test_ldif.rb
|
317
|
+
- test/test_connection_per_class.rb
|
318
|
+
- test/test_usermod-binary-del.rb
|
319
|
+
homepage: http://ruby-activeldap.rubyforge.org/
|
320
|
+
licenses:
|
321
|
+
- Ruby's or GPLv2 or later
|
262
322
|
post_install_message:
|
263
|
-
rdoc_options:
|
264
|
-
|
265
|
-
- lib/active_ldap.rb
|
323
|
+
rdoc_options: []
|
324
|
+
|
266
325
|
require_paths:
|
267
326
|
- lib
|
268
327
|
required_ruby_version: !ruby/object:Gem::Requirement
|