kschrader-authlogic 2.1.2
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/.gitignore +9 -0
- data/CHANGELOG.rdoc +346 -0
- data/LICENSE +20 -0
- data/README.rdoc +245 -0
- data/Rakefile +49 -0
- data/VERSION.yml +4 -0
- data/authlogic.gemspec +205 -0
- data/generators/session/session_generator.rb +9 -0
- data/generators/session/templates/session.rb +2 -0
- data/init.rb +1 -0
- data/lib/authlogic.rb +55 -0
- data/lib/authlogic/acts_as_authentic/base.rb +112 -0
- data/lib/authlogic/acts_as_authentic/email.rb +110 -0
- data/lib/authlogic/acts_as_authentic/logged_in_status.rb +60 -0
- data/lib/authlogic/acts_as_authentic/login.rb +141 -0
- data/lib/authlogic/acts_as_authentic/magic_columns.rb +24 -0
- data/lib/authlogic/acts_as_authentic/password.rb +344 -0
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +105 -0
- data/lib/authlogic/acts_as_authentic/persistence_token.rb +68 -0
- data/lib/authlogic/acts_as_authentic/restful_authentication.rb +61 -0
- data/lib/authlogic/acts_as_authentic/session_maintenance.rb +139 -0
- data/lib/authlogic/acts_as_authentic/single_access_token.rb +65 -0
- data/lib/authlogic/acts_as_authentic/validations_scope.rb +32 -0
- data/lib/authlogic/authenticates_many/association.rb +42 -0
- data/lib/authlogic/authenticates_many/base.rb +55 -0
- data/lib/authlogic/controller_adapters/abstract_adapter.rb +67 -0
- data/lib/authlogic/controller_adapters/merb_adapter.rb +30 -0
- data/lib/authlogic/controller_adapters/rails_adapter.rb +48 -0
- data/lib/authlogic/crypto_providers/aes256.rb +43 -0
- data/lib/authlogic/crypto_providers/bcrypt.rb +89 -0
- data/lib/authlogic/crypto_providers/md5.rb +34 -0
- data/lib/authlogic/crypto_providers/sha1.rb +35 -0
- data/lib/authlogic/crypto_providers/sha512.rb +50 -0
- data/lib/authlogic/i18n.rb +63 -0
- data/lib/authlogic/random.rb +33 -0
- data/lib/authlogic/regex.rb +25 -0
- data/lib/authlogic/session/activation.rb +58 -0
- data/lib/authlogic/session/active_record_trickery.rb +55 -0
- data/lib/authlogic/session/base.rb +37 -0
- data/lib/authlogic/session/brute_force_protection.rb +92 -0
- data/lib/authlogic/session/callbacks.rb +87 -0
- data/lib/authlogic/session/cookies.rb +130 -0
- data/lib/authlogic/session/existence.rb +93 -0
- data/lib/authlogic/session/foundation.rb +63 -0
- data/lib/authlogic/session/http_auth.rb +58 -0
- data/lib/authlogic/session/id.rb +41 -0
- data/lib/authlogic/session/klass.rb +75 -0
- data/lib/authlogic/session/magic_columns.rb +94 -0
- data/lib/authlogic/session/magic_states.rb +58 -0
- data/lib/authlogic/session/params.rb +100 -0
- data/lib/authlogic/session/password.rb +231 -0
- data/lib/authlogic/session/perishable_token.rb +18 -0
- data/lib/authlogic/session/persistence.rb +70 -0
- data/lib/authlogic/session/priority_record.rb +34 -0
- data/lib/authlogic/session/scopes.rb +101 -0
- data/lib/authlogic/session/session.rb +60 -0
- data/lib/authlogic/session/timeout.rb +82 -0
- data/lib/authlogic/session/unauthorized_record.rb +50 -0
- data/lib/authlogic/session/validation.rb +80 -0
- data/lib/authlogic/test_case.rb +114 -0
- data/lib/authlogic/test_case/mock_controller.rb +45 -0
- data/lib/authlogic/test_case/mock_cookie_jar.rb +14 -0
- data/lib/authlogic/test_case/mock_logger.rb +10 -0
- data/lib/authlogic/test_case/mock_request.rb +19 -0
- data/lib/authlogic/test_case/rails_request_adapter.rb +30 -0
- data/rails/init.rb +1 -0
- data/shoulda_macros/authlogic.rb +13 -0
- data/test/acts_as_authentic_test/base_test.rb +18 -0
- data/test/acts_as_authentic_test/email_test.rb +97 -0
- data/test/acts_as_authentic_test/logged_in_status_test.rb +36 -0
- data/test/acts_as_authentic_test/login_test.rb +109 -0
- data/test/acts_as_authentic_test/magic_columns_test.rb +27 -0
- data/test/acts_as_authentic_test/password_test.rb +236 -0
- data/test/acts_as_authentic_test/perishable_token_test.rb +90 -0
- data/test/acts_as_authentic_test/persistence_token_test.rb +55 -0
- data/test/acts_as_authentic_test/restful_authentication_test.rb +40 -0
- data/test/acts_as_authentic_test/session_maintenance_test.rb +84 -0
- data/test/acts_as_authentic_test/single_access_test.rb +44 -0
- data/test/authenticates_many_test.rb +16 -0
- data/test/crypto_provider_test/aes256_test.rb +14 -0
- data/test/crypto_provider_test/bcrypt_test.rb +14 -0
- data/test/crypto_provider_test/sha1_test.rb +23 -0
- data/test/crypto_provider_test/sha512_test.rb +14 -0
- data/test/fixtures/companies.yml +5 -0
- data/test/fixtures/employees.yml +17 -0
- data/test/fixtures/projects.yml +3 -0
- data/test/fixtures/users.yml +24 -0
- data/test/libs/affiliate.rb +7 -0
- data/test/libs/company.rb +6 -0
- data/test/libs/employee.rb +7 -0
- data/test/libs/employee_session.rb +2 -0
- data/test/libs/ldaper.rb +3 -0
- data/test/libs/ordered_hash.rb +9 -0
- data/test/libs/project.rb +3 -0
- data/test/libs/user.rb +5 -0
- data/test/libs/user_session.rb +2 -0
- data/test/random_test.rb +49 -0
- data/test/session_test/activation_test.rb +43 -0
- data/test/session_test/active_record_trickery_test.rb +27 -0
- data/test/session_test/brute_force_protection_test.rb +101 -0
- data/test/session_test/callbacks_test.rb +6 -0
- data/test/session_test/cookies_test.rb +107 -0
- data/test/session_test/credentials_test.rb +0 -0
- data/test/session_test/existence_test.rb +64 -0
- data/test/session_test/http_auth_test.rb +28 -0
- data/test/session_test/id_test.rb +17 -0
- data/test/session_test/klass_test.rb +35 -0
- data/test/session_test/magic_columns_test.rb +62 -0
- data/test/session_test/magic_states_test.rb +60 -0
- data/test/session_test/params_test.rb +53 -0
- data/test/session_test/password_test.rb +106 -0
- data/test/session_test/perishability_test.rb +15 -0
- data/test/session_test/persistence_test.rb +21 -0
- data/test/session_test/scopes_test.rb +60 -0
- data/test/session_test/session_test.rb +59 -0
- data/test/session_test/timeout_test.rb +52 -0
- data/test/session_test/unauthorized_record_test.rb +13 -0
- data/test/session_test/validation_test.rb +23 -0
- data/test/test_helper.rb +174 -0
- metadata +229 -0
data/Rakefile
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "authlogic"
|
8
|
+
gem.summary = "A clean, simple, and unobtrusive ruby authentication solution."
|
9
|
+
gem.email = "bjohnson@binarylogic.com"
|
10
|
+
gem.homepage = "http://github.com/binarylogic/authlogic"
|
11
|
+
gem.authors = ["Ben Johnson of Binary Logic"]
|
12
|
+
gem.rubyforge_project = "authlogic"
|
13
|
+
gem.add_dependency "activesupport"
|
14
|
+
end
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'rake/testtask'
|
20
|
+
Rake::TestTask.new(:test) do |test|
|
21
|
+
test.libs << 'lib' << 'test'
|
22
|
+
test.pattern = 'test/**/*_test.rb'
|
23
|
+
test.verbose = true
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
require 'rcov/rcovtask'
|
28
|
+
Rcov::RcovTask.new do |test|
|
29
|
+
test.libs << 'test'
|
30
|
+
test.pattern = 'test/**/*_test.rb'
|
31
|
+
test.verbose = true
|
32
|
+
end
|
33
|
+
rescue LoadError
|
34
|
+
task :rcov do
|
35
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
task :default => :test
|
40
|
+
|
41
|
+
begin
|
42
|
+
require 'rake/contrib/sshpublisher'
|
43
|
+
namespace :rubyforge do
|
44
|
+
desc "Release gem to RubyForge"
|
45
|
+
task :release => ["rubyforge:release:gem"]
|
46
|
+
end
|
47
|
+
rescue LoadError
|
48
|
+
puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
|
49
|
+
end
|
data/VERSION.yml
ADDED
data/authlogic.gemspec
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{authlogic}
|
5
|
+
s.version = "2.1.2"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Ben Johnson of Binary Logic"]
|
9
|
+
s.date = %q{2009-07-31}
|
10
|
+
s.email = %q{bjohnson@binarylogic.com}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.rdoc"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".gitignore",
|
17
|
+
"CHANGELOG.rdoc",
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION.yml",
|
22
|
+
"authlogic.gemspec",
|
23
|
+
"generators/session/session_generator.rb",
|
24
|
+
"generators/session/templates/session.rb",
|
25
|
+
"init.rb",
|
26
|
+
"lib/authlogic.rb",
|
27
|
+
"lib/authlogic/acts_as_authentic/base.rb",
|
28
|
+
"lib/authlogic/acts_as_authentic/email.rb",
|
29
|
+
"lib/authlogic/acts_as_authentic/logged_in_status.rb",
|
30
|
+
"lib/authlogic/acts_as_authentic/login.rb",
|
31
|
+
"lib/authlogic/acts_as_authentic/magic_columns.rb",
|
32
|
+
"lib/authlogic/acts_as_authentic/password.rb",
|
33
|
+
"lib/authlogic/acts_as_authentic/perishable_token.rb",
|
34
|
+
"lib/authlogic/acts_as_authentic/persistence_token.rb",
|
35
|
+
"lib/authlogic/acts_as_authentic/restful_authentication.rb",
|
36
|
+
"lib/authlogic/acts_as_authentic/session_maintenance.rb",
|
37
|
+
"lib/authlogic/acts_as_authentic/single_access_token.rb",
|
38
|
+
"lib/authlogic/acts_as_authentic/validations_scope.rb",
|
39
|
+
"lib/authlogic/authenticates_many/association.rb",
|
40
|
+
"lib/authlogic/authenticates_many/base.rb",
|
41
|
+
"lib/authlogic/controller_adapters/abstract_adapter.rb",
|
42
|
+
"lib/authlogic/controller_adapters/merb_adapter.rb",
|
43
|
+
"lib/authlogic/controller_adapters/rails_adapter.rb",
|
44
|
+
"lib/authlogic/crypto_providers/aes256.rb",
|
45
|
+
"lib/authlogic/crypto_providers/bcrypt.rb",
|
46
|
+
"lib/authlogic/crypto_providers/md5.rb",
|
47
|
+
"lib/authlogic/crypto_providers/sha1.rb",
|
48
|
+
"lib/authlogic/crypto_providers/sha512.rb",
|
49
|
+
"lib/authlogic/i18n.rb",
|
50
|
+
"lib/authlogic/random.rb",
|
51
|
+
"lib/authlogic/regex.rb",
|
52
|
+
"lib/authlogic/session/activation.rb",
|
53
|
+
"lib/authlogic/session/active_record_trickery.rb",
|
54
|
+
"lib/authlogic/session/base.rb",
|
55
|
+
"lib/authlogic/session/brute_force_protection.rb",
|
56
|
+
"lib/authlogic/session/callbacks.rb",
|
57
|
+
"lib/authlogic/session/cookies.rb",
|
58
|
+
"lib/authlogic/session/existence.rb",
|
59
|
+
"lib/authlogic/session/foundation.rb",
|
60
|
+
"lib/authlogic/session/http_auth.rb",
|
61
|
+
"lib/authlogic/session/id.rb",
|
62
|
+
"lib/authlogic/session/klass.rb",
|
63
|
+
"lib/authlogic/session/magic_columns.rb",
|
64
|
+
"lib/authlogic/session/magic_states.rb",
|
65
|
+
"lib/authlogic/session/params.rb",
|
66
|
+
"lib/authlogic/session/password.rb",
|
67
|
+
"lib/authlogic/session/perishable_token.rb",
|
68
|
+
"lib/authlogic/session/persistence.rb",
|
69
|
+
"lib/authlogic/session/priority_record.rb",
|
70
|
+
"lib/authlogic/session/scopes.rb",
|
71
|
+
"lib/authlogic/session/session.rb",
|
72
|
+
"lib/authlogic/session/timeout.rb",
|
73
|
+
"lib/authlogic/session/unauthorized_record.rb",
|
74
|
+
"lib/authlogic/session/validation.rb",
|
75
|
+
"lib/authlogic/test_case.rb",
|
76
|
+
"lib/authlogic/test_case/mock_controller.rb",
|
77
|
+
"lib/authlogic/test_case/mock_cookie_jar.rb",
|
78
|
+
"lib/authlogic/test_case/mock_logger.rb",
|
79
|
+
"lib/authlogic/test_case/mock_request.rb",
|
80
|
+
"lib/authlogic/test_case/rails_request_adapter.rb",
|
81
|
+
"rails/init.rb",
|
82
|
+
"shoulda_macros/authlogic.rb",
|
83
|
+
"test/acts_as_authentic_test/base_test.rb",
|
84
|
+
"test/acts_as_authentic_test/email_test.rb",
|
85
|
+
"test/acts_as_authentic_test/logged_in_status_test.rb",
|
86
|
+
"test/acts_as_authentic_test/login_test.rb",
|
87
|
+
"test/acts_as_authentic_test/magic_columns_test.rb",
|
88
|
+
"test/acts_as_authentic_test/password_test.rb",
|
89
|
+
"test/acts_as_authentic_test/perishable_token_test.rb",
|
90
|
+
"test/acts_as_authentic_test/persistence_token_test.rb",
|
91
|
+
"test/acts_as_authentic_test/restful_authentication_test.rb",
|
92
|
+
"test/acts_as_authentic_test/session_maintenance_test.rb",
|
93
|
+
"test/acts_as_authentic_test/single_access_test.rb",
|
94
|
+
"test/authenticates_many_test.rb",
|
95
|
+
"test/crypto_provider_test/aes256_test.rb",
|
96
|
+
"test/crypto_provider_test/bcrypt_test.rb",
|
97
|
+
"test/crypto_provider_test/sha1_test.rb",
|
98
|
+
"test/crypto_provider_test/sha512_test.rb",
|
99
|
+
"test/fixtures/companies.yml",
|
100
|
+
"test/fixtures/employees.yml",
|
101
|
+
"test/fixtures/projects.yml",
|
102
|
+
"test/fixtures/users.yml",
|
103
|
+
"test/libs/affiliate.rb",
|
104
|
+
"test/libs/company.rb",
|
105
|
+
"test/libs/employee.rb",
|
106
|
+
"test/libs/employee_session.rb",
|
107
|
+
"test/libs/ldaper.rb",
|
108
|
+
"test/libs/ordered_hash.rb",
|
109
|
+
"test/libs/project.rb",
|
110
|
+
"test/libs/user.rb",
|
111
|
+
"test/libs/user_session.rb",
|
112
|
+
"test/random_test.rb",
|
113
|
+
"test/session_test/activation_test.rb",
|
114
|
+
"test/session_test/active_record_trickery_test.rb",
|
115
|
+
"test/session_test/brute_force_protection_test.rb",
|
116
|
+
"test/session_test/callbacks_test.rb",
|
117
|
+
"test/session_test/cookies_test.rb",
|
118
|
+
"test/session_test/credentials_test.rb",
|
119
|
+
"test/session_test/existence_test.rb",
|
120
|
+
"test/session_test/http_auth_test.rb",
|
121
|
+
"test/session_test/id_test.rb",
|
122
|
+
"test/session_test/klass_test.rb",
|
123
|
+
"test/session_test/magic_columns_test.rb",
|
124
|
+
"test/session_test/magic_states_test.rb",
|
125
|
+
"test/session_test/params_test.rb",
|
126
|
+
"test/session_test/password_test.rb",
|
127
|
+
"test/session_test/perishability_test.rb",
|
128
|
+
"test/session_test/persistence_test.rb",
|
129
|
+
"test/session_test/scopes_test.rb",
|
130
|
+
"test/session_test/session_test.rb",
|
131
|
+
"test/session_test/timeout_test.rb",
|
132
|
+
"test/session_test/unauthorized_record_test.rb",
|
133
|
+
"test/session_test/validation_test.rb",
|
134
|
+
"test/test_helper.rb"
|
135
|
+
]
|
136
|
+
s.homepage = %q{http://github.com/binarylogic/authlogic}
|
137
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
138
|
+
s.require_paths = ["lib"]
|
139
|
+
s.rubyforge_project = %q{authlogic}
|
140
|
+
s.rubygems_version = %q{1.3.3}
|
141
|
+
s.summary = %q{A clean, simple, and unobtrusive ruby authentication solution.}
|
142
|
+
s.test_files = [
|
143
|
+
"test/authenticates_many_test.rb",
|
144
|
+
"test/random_test.rb",
|
145
|
+
"test/test_helper.rb",
|
146
|
+
"test/acts_as_authentic_test/base_test.rb",
|
147
|
+
"test/acts_as_authentic_test/email_test.rb",
|
148
|
+
"test/acts_as_authentic_test/logged_in_status_test.rb",
|
149
|
+
"test/acts_as_authentic_test/login_test.rb",
|
150
|
+
"test/acts_as_authentic_test/magic_columns_test.rb",
|
151
|
+
"test/acts_as_authentic_test/password_test.rb",
|
152
|
+
"test/acts_as_authentic_test/perishable_token_test.rb",
|
153
|
+
"test/acts_as_authentic_test/persistence_token_test.rb",
|
154
|
+
"test/acts_as_authentic_test/restful_authentication_test.rb",
|
155
|
+
"test/acts_as_authentic_test/session_maintenance_test.rb",
|
156
|
+
"test/acts_as_authentic_test/single_access_test.rb",
|
157
|
+
"test/crypto_provider_test/aes256_test.rb",
|
158
|
+
"test/crypto_provider_test/bcrypt_test.rb",
|
159
|
+
"test/crypto_provider_test/sha1_test.rb",
|
160
|
+
"test/crypto_provider_test/sha512_test.rb",
|
161
|
+
"test/libs/affiliate.rb",
|
162
|
+
"test/libs/company.rb",
|
163
|
+
"test/libs/employee.rb",
|
164
|
+
"test/libs/employee_session.rb",
|
165
|
+
"test/libs/ldaper.rb",
|
166
|
+
"test/libs/ordered_hash.rb",
|
167
|
+
"test/libs/project.rb",
|
168
|
+
"test/libs/user.rb",
|
169
|
+
"test/libs/user_session.rb",
|
170
|
+
"test/session_test/activation_test.rb",
|
171
|
+
"test/session_test/active_record_trickery_test.rb",
|
172
|
+
"test/session_test/brute_force_protection_test.rb",
|
173
|
+
"test/session_test/callbacks_test.rb",
|
174
|
+
"test/session_test/cookies_test.rb",
|
175
|
+
"test/session_test/credentials_test.rb",
|
176
|
+
"test/session_test/existence_test.rb",
|
177
|
+
"test/session_test/http_auth_test.rb",
|
178
|
+
"test/session_test/id_test.rb",
|
179
|
+
"test/session_test/klass_test.rb",
|
180
|
+
"test/session_test/magic_columns_test.rb",
|
181
|
+
"test/session_test/magic_states_test.rb",
|
182
|
+
"test/session_test/params_test.rb",
|
183
|
+
"test/session_test/password_test.rb",
|
184
|
+
"test/session_test/perishability_test.rb",
|
185
|
+
"test/session_test/persistence_test.rb",
|
186
|
+
"test/session_test/scopes_test.rb",
|
187
|
+
"test/session_test/session_test.rb",
|
188
|
+
"test/session_test/timeout_test.rb",
|
189
|
+
"test/session_test/unauthorized_record_test.rb",
|
190
|
+
"test/session_test/validation_test.rb"
|
191
|
+
]
|
192
|
+
|
193
|
+
if s.respond_to? :specification_version then
|
194
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
195
|
+
s.specification_version = 3
|
196
|
+
|
197
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
198
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
199
|
+
else
|
200
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
201
|
+
end
|
202
|
+
else
|
203
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
204
|
+
end
|
205
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class SessionGenerator < Rails::Generator::NamedBase
|
2
|
+
def manifest
|
3
|
+
record do |m|
|
4
|
+
m.class_collisions class_name
|
5
|
+
m.directory File.join('app/models', class_path)
|
6
|
+
m.template 'session.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/rails/init.rb"
|
data/lib/authlogic.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require "active_support"
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/authlogic/i18n"
|
4
|
+
require File.dirname(__FILE__) + "/authlogic/random"
|
5
|
+
require File.dirname(__FILE__) + "/authlogic/regex"
|
6
|
+
|
7
|
+
require File.dirname(__FILE__) + "/authlogic/controller_adapters/abstract_adapter"
|
8
|
+
require File.dirname(__FILE__) + "/authlogic/controller_adapters/rails_adapter" if defined?(Rails)
|
9
|
+
require File.dirname(__FILE__) + "/authlogic/controller_adapters/merb_adapter" if defined?(Merb)
|
10
|
+
|
11
|
+
require File.dirname(__FILE__) + "/authlogic/crypto_providers/md5"
|
12
|
+
require File.dirname(__FILE__) + "/authlogic/crypto_providers/sha1"
|
13
|
+
require File.dirname(__FILE__) + "/authlogic/crypto_providers/sha512"
|
14
|
+
require File.dirname(__FILE__) + "/authlogic/crypto_providers/bcrypt"
|
15
|
+
require File.dirname(__FILE__) + "/authlogic/crypto_providers/aes256"
|
16
|
+
|
17
|
+
require File.dirname(__FILE__) + "/authlogic/authenticates_many/base"
|
18
|
+
require File.dirname(__FILE__) + "/authlogic/authenticates_many/association"
|
19
|
+
|
20
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/email"
|
21
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/logged_in_status"
|
22
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/login"
|
23
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/magic_columns"
|
24
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/password"
|
25
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/perishable_token"
|
26
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/persistence_token"
|
27
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/restful_authentication"
|
28
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/session_maintenance"
|
29
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/single_access_token"
|
30
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/validations_scope"
|
31
|
+
require File.dirname(__FILE__) + "/authlogic/acts_as_authentic/base"
|
32
|
+
|
33
|
+
require File.dirname(__FILE__) + "/authlogic/session/activation"
|
34
|
+
require File.dirname(__FILE__) + "/authlogic/session/active_record_trickery"
|
35
|
+
require File.dirname(__FILE__) + "/authlogic/session/brute_force_protection"
|
36
|
+
require File.dirname(__FILE__) + "/authlogic/session/callbacks"
|
37
|
+
require File.dirname(__FILE__) + "/authlogic/session/cookies"
|
38
|
+
require File.dirname(__FILE__) + "/authlogic/session/existence"
|
39
|
+
require File.dirname(__FILE__) + "/authlogic/session/foundation"
|
40
|
+
require File.dirname(__FILE__) + "/authlogic/session/http_auth"
|
41
|
+
require File.dirname(__FILE__) + "/authlogic/session/id"
|
42
|
+
require File.dirname(__FILE__) + "/authlogic/session/klass"
|
43
|
+
require File.dirname(__FILE__) + "/authlogic/session/magic_columns"
|
44
|
+
require File.dirname(__FILE__) + "/authlogic/session/magic_states"
|
45
|
+
require File.dirname(__FILE__) + "/authlogic/session/params"
|
46
|
+
require File.dirname(__FILE__) + "/authlogic/session/password"
|
47
|
+
require File.dirname(__FILE__) + "/authlogic/session/perishable_token"
|
48
|
+
require File.dirname(__FILE__) + "/authlogic/session/persistence"
|
49
|
+
require File.dirname(__FILE__) + "/authlogic/session/priority_record"
|
50
|
+
require File.dirname(__FILE__) + "/authlogic/session/scopes"
|
51
|
+
require File.dirname(__FILE__) + "/authlogic/session/session"
|
52
|
+
require File.dirname(__FILE__) + "/authlogic/session/timeout"
|
53
|
+
require File.dirname(__FILE__) + "/authlogic/session/unauthorized_record"
|
54
|
+
require File.dirname(__FILE__) + "/authlogic/session/validation"
|
55
|
+
require File.dirname(__FILE__) + "/authlogic/session/base"
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module Authlogic
|
2
|
+
module ActsAsAuthentic
|
3
|
+
# Provides the base functionality for acts_as_authentic
|
4
|
+
module Base
|
5
|
+
def self.included(klass)
|
6
|
+
klass.class_eval do
|
7
|
+
extend Config
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module Config
|
12
|
+
# This includes a lot of helpful methods for authenticating records which The Authlogic::Session module relies on.
|
13
|
+
# To use it just do:
|
14
|
+
#
|
15
|
+
# class User < ActiveRecord::Base
|
16
|
+
# acts_as_authentic
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# Configuration is easy:
|
20
|
+
#
|
21
|
+
# acts_as_authentic do |c|
|
22
|
+
# c.my_configuration_option = my_value
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# See the various sub modules for the configuration they provide.
|
26
|
+
def acts_as_authentic(unsupported_options = nil, &block)
|
27
|
+
# Stop all configuration if the DB is not set up
|
28
|
+
return if !db_setup?
|
29
|
+
|
30
|
+
raise ArgumentError.new("You are using the old v1.X.X configuration method for Authlogic. Instead of " +
|
31
|
+
"passing a hash of configuration options to acts_as_authentic, pass a block: acts_as_authentic { |c| c.my_option = my_value }") if !unsupported_options.nil?
|
32
|
+
|
33
|
+
yield self if block_given?
|
34
|
+
acts_as_authentic_modules.each { |mod| include mod }
|
35
|
+
end
|
36
|
+
|
37
|
+
# Since this part of Authlogic deals with another class, ActiveRecord, we can't just start including things
|
38
|
+
# in ActiveRecord itself. A lot of these module includes need to be triggered by the acts_as_authentic method
|
39
|
+
# call. For example, you don't want to start adding in email validations and what not into a model that has
|
40
|
+
# nothing to do with Authlogic.
|
41
|
+
#
|
42
|
+
# That being said, this is your tool for extending Authlogic and "hooking" into the acts_as_authentic call.
|
43
|
+
def add_acts_as_authentic_module(mod, action = :append)
|
44
|
+
modules = acts_as_authentic_modules
|
45
|
+
case action
|
46
|
+
when :append
|
47
|
+
modules << mod
|
48
|
+
when :prepend
|
49
|
+
modules = [mod] + modules
|
50
|
+
end
|
51
|
+
modules.uniq!
|
52
|
+
write_inheritable_attribute(:acts_as_authentic_modules, modules)
|
53
|
+
end
|
54
|
+
|
55
|
+
# This is the same as add_acts_as_authentic_module, except that it removes the module from the list.
|
56
|
+
def remove_acts_as_authentic_module(mod)
|
57
|
+
acts_as_authentic_modules.delete(mod)
|
58
|
+
acts_as_authentic_modules
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
def acts_as_authentic_modules
|
63
|
+
key = :acts_as_authentic_modules
|
64
|
+
inheritable_attributes.include?(key) ? read_inheritable_attribute(key) : []
|
65
|
+
end
|
66
|
+
|
67
|
+
def db_setup?
|
68
|
+
begin
|
69
|
+
column_names
|
70
|
+
true
|
71
|
+
rescue Exception
|
72
|
+
false
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def rw_config(key, value, default_value = nil, read_value = nil)
|
77
|
+
if value == read_value
|
78
|
+
inheritable_attributes.include?(key) ? read_inheritable_attribute(key) : default_value
|
79
|
+
else
|
80
|
+
write_inheritable_attribute(key, value)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def first_column_to_exist(*columns_to_check)
|
85
|
+
if db_setup?
|
86
|
+
columns_to_check.each { |column_name| return column_name.to_sym if column_names.include?(column_name.to_s) }
|
87
|
+
end
|
88
|
+
columns_to_check.first && columns_to_check.first.to_sym
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
if defined?(::ActiveRecord)
|
96
|
+
module ::ActiveRecord
|
97
|
+
class Base
|
98
|
+
include Authlogic::ActsAsAuthentic::Base
|
99
|
+
include Authlogic::ActsAsAuthentic::Email
|
100
|
+
include Authlogic::ActsAsAuthentic::LoggedInStatus
|
101
|
+
include Authlogic::ActsAsAuthentic::Login
|
102
|
+
include Authlogic::ActsAsAuthentic::MagicColumns
|
103
|
+
include Authlogic::ActsAsAuthentic::Password
|
104
|
+
include Authlogic::ActsAsAuthentic::PerishableToken
|
105
|
+
include Authlogic::ActsAsAuthentic::PersistenceToken
|
106
|
+
include Authlogic::ActsAsAuthentic::RestfulAuthentication
|
107
|
+
include Authlogic::ActsAsAuthentic::SessionMaintenance
|
108
|
+
include Authlogic::ActsAsAuthentic::SingleAccessToken
|
109
|
+
include Authlogic::ActsAsAuthentic::ValidationsScope
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|