jdl-authlogic 2.1.6.1

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.
Files changed (127) hide show
  1. data/.gitignore +9 -0
  2. data/CHANGELOG.rdoc +345 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +246 -0
  5. data/Rakefile +41 -0
  6. data/VERSION.yml +5 -0
  7. data/generators/session/session_generator.rb +9 -0
  8. data/generators/session/templates/session.rb +2 -0
  9. data/init.rb +1 -0
  10. data/jdl-authlogic-2.1.6.gem +0 -0
  11. data/jdl-authlogic.gemspec +217 -0
  12. data/lib/authlogic.rb +64 -0
  13. data/lib/authlogic/acts_as_authentic/base.rb +107 -0
  14. data/lib/authlogic/acts_as_authentic/email.rb +110 -0
  15. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +60 -0
  16. data/lib/authlogic/acts_as_authentic/login.rb +141 -0
  17. data/lib/authlogic/acts_as_authentic/magic_columns.rb +24 -0
  18. data/lib/authlogic/acts_as_authentic/password.rb +355 -0
  19. data/lib/authlogic/acts_as_authentic/perishable_token.rb +105 -0
  20. data/lib/authlogic/acts_as_authentic/persistence_token.rb +68 -0
  21. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +61 -0
  22. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +139 -0
  23. data/lib/authlogic/acts_as_authentic/single_access_token.rb +65 -0
  24. data/lib/authlogic/acts_as_authentic/validations_scope.rb +32 -0
  25. data/lib/authlogic/authenticates_many/association.rb +42 -0
  26. data/lib/authlogic/authenticates_many/base.rb +55 -0
  27. data/lib/authlogic/controller_adapters/abstract_adapter.rb +67 -0
  28. data/lib/authlogic/controller_adapters/merb_adapter.rb +30 -0
  29. data/lib/authlogic/controller_adapters/rails_adapter.rb +48 -0
  30. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +61 -0
  31. data/lib/authlogic/crypto_providers/aes256.rb +43 -0
  32. data/lib/authlogic/crypto_providers/bcrypt.rb +90 -0
  33. data/lib/authlogic/crypto_providers/md5.rb +34 -0
  34. data/lib/authlogic/crypto_providers/sha1.rb +35 -0
  35. data/lib/authlogic/crypto_providers/sha256.rb +50 -0
  36. data/lib/authlogic/crypto_providers/sha512.rb +50 -0
  37. data/lib/authlogic/crypto_providers/wordpress.rb +43 -0
  38. data/lib/authlogic/i18n.rb +83 -0
  39. data/lib/authlogic/i18n/translator.rb +15 -0
  40. data/lib/authlogic/random.rb +33 -0
  41. data/lib/authlogic/regex.rb +25 -0
  42. data/lib/authlogic/session/activation.rb +58 -0
  43. data/lib/authlogic/session/active_record_trickery.rb +64 -0
  44. data/lib/authlogic/session/base.rb +37 -0
  45. data/lib/authlogic/session/brute_force_protection.rb +96 -0
  46. data/lib/authlogic/session/callbacks.rb +99 -0
  47. data/lib/authlogic/session/cookies.rb +130 -0
  48. data/lib/authlogic/session/existence.rb +93 -0
  49. data/lib/authlogic/session/foundation.rb +71 -0
  50. data/lib/authlogic/session/http_auth.rb +58 -0
  51. data/lib/authlogic/session/id.rb +41 -0
  52. data/lib/authlogic/session/klass.rb +78 -0
  53. data/lib/authlogic/session/magic_columns.rb +95 -0
  54. data/lib/authlogic/session/magic_states.rb +59 -0
  55. data/lib/authlogic/session/params.rb +101 -0
  56. data/lib/authlogic/session/password.rb +240 -0
  57. data/lib/authlogic/session/perishable_token.rb +18 -0
  58. data/lib/authlogic/session/persistence.rb +70 -0
  59. data/lib/authlogic/session/priority_record.rb +34 -0
  60. data/lib/authlogic/session/scopes.rb +101 -0
  61. data/lib/authlogic/session/session.rb +62 -0
  62. data/lib/authlogic/session/timeout.rb +82 -0
  63. data/lib/authlogic/session/unauthorized_record.rb +50 -0
  64. data/lib/authlogic/session/validation.rb +82 -0
  65. data/lib/authlogic/test_case.rb +120 -0
  66. data/lib/authlogic/test_case/mock_controller.rb +45 -0
  67. data/lib/authlogic/test_case/mock_cookie_jar.rb +14 -0
  68. data/lib/authlogic/test_case/mock_logger.rb +10 -0
  69. data/lib/authlogic/test_case/mock_request.rb +19 -0
  70. data/lib/authlogic/test_case/rails_request_adapter.rb +30 -0
  71. data/rails/init.rb +1 -0
  72. data/shoulda_macros/authlogic.rb +69 -0
  73. data/test/acts_as_authentic_test/base_test.rb +18 -0
  74. data/test/acts_as_authentic_test/email_test.rb +101 -0
  75. data/test/acts_as_authentic_test/logged_in_status_test.rb +36 -0
  76. data/test/acts_as_authentic_test/login_test.rb +109 -0
  77. data/test/acts_as_authentic_test/magic_columns_test.rb +27 -0
  78. data/test/acts_as_authentic_test/password_test.rb +236 -0
  79. data/test/acts_as_authentic_test/perishable_token_test.rb +90 -0
  80. data/test/acts_as_authentic_test/persistence_token_test.rb +55 -0
  81. data/test/acts_as_authentic_test/restful_authentication_test.rb +40 -0
  82. data/test/acts_as_authentic_test/session_maintenance_test.rb +84 -0
  83. data/test/acts_as_authentic_test/single_access_test.rb +44 -0
  84. data/test/authenticates_many_test.rb +16 -0
  85. data/test/crypto_provider_test/aes256_test.rb +14 -0
  86. data/test/crypto_provider_test/bcrypt_test.rb +14 -0
  87. data/test/crypto_provider_test/sha1_test.rb +23 -0
  88. data/test/crypto_provider_test/sha256_test.rb +14 -0
  89. data/test/crypto_provider_test/sha512_test.rb +14 -0
  90. data/test/fixtures/companies.yml +5 -0
  91. data/test/fixtures/employees.yml +17 -0
  92. data/test/fixtures/projects.yml +3 -0
  93. data/test/fixtures/users.yml +24 -0
  94. data/test/i18n_test.rb +33 -0
  95. data/test/libs/affiliate.rb +7 -0
  96. data/test/libs/company.rb +6 -0
  97. data/test/libs/employee.rb +7 -0
  98. data/test/libs/employee_session.rb +2 -0
  99. data/test/libs/ldaper.rb +3 -0
  100. data/test/libs/ordered_hash.rb +9 -0
  101. data/test/libs/project.rb +3 -0
  102. data/test/libs/user.rb +5 -0
  103. data/test/libs/user_session.rb +6 -0
  104. data/test/random_test.rb +42 -0
  105. data/test/session_test/activation_test.rb +43 -0
  106. data/test/session_test/active_record_trickery_test.rb +36 -0
  107. data/test/session_test/brute_force_protection_test.rb +101 -0
  108. data/test/session_test/callbacks_test.rb +6 -0
  109. data/test/session_test/cookies_test.rb +112 -0
  110. data/test/session_test/credentials_test.rb +0 -0
  111. data/test/session_test/existence_test.rb +64 -0
  112. data/test/session_test/http_auth_test.rb +28 -0
  113. data/test/session_test/id_test.rb +17 -0
  114. data/test/session_test/klass_test.rb +40 -0
  115. data/test/session_test/magic_columns_test.rb +62 -0
  116. data/test/session_test/magic_states_test.rb +60 -0
  117. data/test/session_test/params_test.rb +53 -0
  118. data/test/session_test/password_test.rb +106 -0
  119. data/test/session_test/perishability_test.rb +15 -0
  120. data/test/session_test/persistence_test.rb +21 -0
  121. data/test/session_test/scopes_test.rb +60 -0
  122. data/test/session_test/session_test.rb +59 -0
  123. data/test/session_test/timeout_test.rb +52 -0
  124. data/test/session_test/unauthorized_record_test.rb +13 -0
  125. data/test/session_test/validation_test.rb +23 -0
  126. data/test/test_helper.rb +182 -0
  127. metadata +256 -0
data/Rakefile ADDED
@@ -0,0 +1,41 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "jdl-authlogic"
8
+ gem.summary = "A clean, simple, and unobtrusive ruby authentication solution."
9
+ gem.email = "bjohnson@binarylogic.com"
10
+ gem.homepage = "http://github.com/jdl/authlogic"
11
+ gem.authors = ["Ben Johnson of Binary Logic (simple Sinatra-related bugfix by JDL in this fork)"]
12
+ gem.add_dependency "activesupport"
13
+ end
14
+ Jeweler::GemcutterTasks.new
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 << '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 :test => :check_dependencies
40
+
41
+ task :default => :test
data/VERSION.yml ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ :major: 2
3
+ :minor: 1
4
+ :patch: 6
5
+ :build: 1
@@ -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
@@ -0,0 +1,2 @@
1
+ class <%= class_name %> < Authlogic::Session::Base
2
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + "/rails/init.rb"
Binary file
@@ -0,0 +1,217 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{jdl-authlogic}
8
+ s.version = "2.1.6.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ben Johnson of Binary Logic (simple Sinatra-related bugfix by JDL in this fork)"]
12
+ s.date = %q{2010-09-22}
13
+ s.email = %q{bjohnson@binarylogic.com}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".gitignore",
20
+ "CHANGELOG.rdoc",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION.yml",
25
+ "generators/session/session_generator.rb",
26
+ "generators/session/templates/session.rb",
27
+ "init.rb",
28
+ "jdl-authlogic-2.1.6.gem",
29
+ "jdl-authlogic.gemspec",
30
+ "lib/authlogic.rb",
31
+ "lib/authlogic/acts_as_authentic/base.rb",
32
+ "lib/authlogic/acts_as_authentic/email.rb",
33
+ "lib/authlogic/acts_as_authentic/logged_in_status.rb",
34
+ "lib/authlogic/acts_as_authentic/login.rb",
35
+ "lib/authlogic/acts_as_authentic/magic_columns.rb",
36
+ "lib/authlogic/acts_as_authentic/password.rb",
37
+ "lib/authlogic/acts_as_authentic/perishable_token.rb",
38
+ "lib/authlogic/acts_as_authentic/persistence_token.rb",
39
+ "lib/authlogic/acts_as_authentic/restful_authentication.rb",
40
+ "lib/authlogic/acts_as_authentic/session_maintenance.rb",
41
+ "lib/authlogic/acts_as_authentic/single_access_token.rb",
42
+ "lib/authlogic/acts_as_authentic/validations_scope.rb",
43
+ "lib/authlogic/authenticates_many/association.rb",
44
+ "lib/authlogic/authenticates_many/base.rb",
45
+ "lib/authlogic/controller_adapters/abstract_adapter.rb",
46
+ "lib/authlogic/controller_adapters/merb_adapter.rb",
47
+ "lib/authlogic/controller_adapters/rails_adapter.rb",
48
+ "lib/authlogic/controller_adapters/sinatra_adapter.rb",
49
+ "lib/authlogic/crypto_providers/aes256.rb",
50
+ "lib/authlogic/crypto_providers/bcrypt.rb",
51
+ "lib/authlogic/crypto_providers/md5.rb",
52
+ "lib/authlogic/crypto_providers/sha1.rb",
53
+ "lib/authlogic/crypto_providers/sha256.rb",
54
+ "lib/authlogic/crypto_providers/sha512.rb",
55
+ "lib/authlogic/crypto_providers/wordpress.rb",
56
+ "lib/authlogic/i18n.rb",
57
+ "lib/authlogic/i18n/translator.rb",
58
+ "lib/authlogic/random.rb",
59
+ "lib/authlogic/regex.rb",
60
+ "lib/authlogic/session/activation.rb",
61
+ "lib/authlogic/session/active_record_trickery.rb",
62
+ "lib/authlogic/session/base.rb",
63
+ "lib/authlogic/session/brute_force_protection.rb",
64
+ "lib/authlogic/session/callbacks.rb",
65
+ "lib/authlogic/session/cookies.rb",
66
+ "lib/authlogic/session/existence.rb",
67
+ "lib/authlogic/session/foundation.rb",
68
+ "lib/authlogic/session/http_auth.rb",
69
+ "lib/authlogic/session/id.rb",
70
+ "lib/authlogic/session/klass.rb",
71
+ "lib/authlogic/session/magic_columns.rb",
72
+ "lib/authlogic/session/magic_states.rb",
73
+ "lib/authlogic/session/params.rb",
74
+ "lib/authlogic/session/password.rb",
75
+ "lib/authlogic/session/perishable_token.rb",
76
+ "lib/authlogic/session/persistence.rb",
77
+ "lib/authlogic/session/priority_record.rb",
78
+ "lib/authlogic/session/scopes.rb",
79
+ "lib/authlogic/session/session.rb",
80
+ "lib/authlogic/session/timeout.rb",
81
+ "lib/authlogic/session/unauthorized_record.rb",
82
+ "lib/authlogic/session/validation.rb",
83
+ "lib/authlogic/test_case.rb",
84
+ "lib/authlogic/test_case/mock_controller.rb",
85
+ "lib/authlogic/test_case/mock_cookie_jar.rb",
86
+ "lib/authlogic/test_case/mock_logger.rb",
87
+ "lib/authlogic/test_case/mock_request.rb",
88
+ "lib/authlogic/test_case/rails_request_adapter.rb",
89
+ "rails/init.rb",
90
+ "shoulda_macros/authlogic.rb",
91
+ "test/acts_as_authentic_test/base_test.rb",
92
+ "test/acts_as_authentic_test/email_test.rb",
93
+ "test/acts_as_authentic_test/logged_in_status_test.rb",
94
+ "test/acts_as_authentic_test/login_test.rb",
95
+ "test/acts_as_authentic_test/magic_columns_test.rb",
96
+ "test/acts_as_authentic_test/password_test.rb",
97
+ "test/acts_as_authentic_test/perishable_token_test.rb",
98
+ "test/acts_as_authentic_test/persistence_token_test.rb",
99
+ "test/acts_as_authentic_test/restful_authentication_test.rb",
100
+ "test/acts_as_authentic_test/session_maintenance_test.rb",
101
+ "test/acts_as_authentic_test/single_access_test.rb",
102
+ "test/authenticates_many_test.rb",
103
+ "test/crypto_provider_test/aes256_test.rb",
104
+ "test/crypto_provider_test/bcrypt_test.rb",
105
+ "test/crypto_provider_test/sha1_test.rb",
106
+ "test/crypto_provider_test/sha256_test.rb",
107
+ "test/crypto_provider_test/sha512_test.rb",
108
+ "test/fixtures/companies.yml",
109
+ "test/fixtures/employees.yml",
110
+ "test/fixtures/projects.yml",
111
+ "test/fixtures/users.yml",
112
+ "test/i18n_test.rb",
113
+ "test/libs/affiliate.rb",
114
+ "test/libs/company.rb",
115
+ "test/libs/employee.rb",
116
+ "test/libs/employee_session.rb",
117
+ "test/libs/ldaper.rb",
118
+ "test/libs/ordered_hash.rb",
119
+ "test/libs/project.rb",
120
+ "test/libs/user.rb",
121
+ "test/libs/user_session.rb",
122
+ "test/random_test.rb",
123
+ "test/session_test/activation_test.rb",
124
+ "test/session_test/active_record_trickery_test.rb",
125
+ "test/session_test/brute_force_protection_test.rb",
126
+ "test/session_test/callbacks_test.rb",
127
+ "test/session_test/cookies_test.rb",
128
+ "test/session_test/credentials_test.rb",
129
+ "test/session_test/existence_test.rb",
130
+ "test/session_test/http_auth_test.rb",
131
+ "test/session_test/id_test.rb",
132
+ "test/session_test/klass_test.rb",
133
+ "test/session_test/magic_columns_test.rb",
134
+ "test/session_test/magic_states_test.rb",
135
+ "test/session_test/params_test.rb",
136
+ "test/session_test/password_test.rb",
137
+ "test/session_test/perishability_test.rb",
138
+ "test/session_test/persistence_test.rb",
139
+ "test/session_test/scopes_test.rb",
140
+ "test/session_test/session_test.rb",
141
+ "test/session_test/timeout_test.rb",
142
+ "test/session_test/unauthorized_record_test.rb",
143
+ "test/session_test/validation_test.rb",
144
+ "test/test_helper.rb"
145
+ ]
146
+ s.homepage = %q{http://github.com/jdl/authlogic}
147
+ s.rdoc_options = ["--charset=UTF-8"]
148
+ s.require_paths = ["lib"]
149
+ s.rubygems_version = %q{1.3.7}
150
+ s.summary = %q{A clean, simple, and unobtrusive ruby authentication solution.}
151
+ s.test_files = [
152
+ "test/acts_as_authentic_test/base_test.rb",
153
+ "test/acts_as_authentic_test/email_test.rb",
154
+ "test/acts_as_authentic_test/logged_in_status_test.rb",
155
+ "test/acts_as_authentic_test/login_test.rb",
156
+ "test/acts_as_authentic_test/magic_columns_test.rb",
157
+ "test/acts_as_authentic_test/password_test.rb",
158
+ "test/acts_as_authentic_test/perishable_token_test.rb",
159
+ "test/acts_as_authentic_test/persistence_token_test.rb",
160
+ "test/acts_as_authentic_test/restful_authentication_test.rb",
161
+ "test/acts_as_authentic_test/session_maintenance_test.rb",
162
+ "test/acts_as_authentic_test/single_access_test.rb",
163
+ "test/authenticates_many_test.rb",
164
+ "test/crypto_provider_test/aes256_test.rb",
165
+ "test/crypto_provider_test/bcrypt_test.rb",
166
+ "test/crypto_provider_test/sha1_test.rb",
167
+ "test/crypto_provider_test/sha256_test.rb",
168
+ "test/crypto_provider_test/sha512_test.rb",
169
+ "test/i18n_test.rb",
170
+ "test/libs/affiliate.rb",
171
+ "test/libs/company.rb",
172
+ "test/libs/employee.rb",
173
+ "test/libs/employee_session.rb",
174
+ "test/libs/ldaper.rb",
175
+ "test/libs/ordered_hash.rb",
176
+ "test/libs/project.rb",
177
+ "test/libs/user.rb",
178
+ "test/libs/user_session.rb",
179
+ "test/random_test.rb",
180
+ "test/session_test/activation_test.rb",
181
+ "test/session_test/active_record_trickery_test.rb",
182
+ "test/session_test/brute_force_protection_test.rb",
183
+ "test/session_test/callbacks_test.rb",
184
+ "test/session_test/cookies_test.rb",
185
+ "test/session_test/credentials_test.rb",
186
+ "test/session_test/existence_test.rb",
187
+ "test/session_test/http_auth_test.rb",
188
+ "test/session_test/id_test.rb",
189
+ "test/session_test/klass_test.rb",
190
+ "test/session_test/magic_columns_test.rb",
191
+ "test/session_test/magic_states_test.rb",
192
+ "test/session_test/params_test.rb",
193
+ "test/session_test/password_test.rb",
194
+ "test/session_test/perishability_test.rb",
195
+ "test/session_test/persistence_test.rb",
196
+ "test/session_test/scopes_test.rb",
197
+ "test/session_test/session_test.rb",
198
+ "test/session_test/timeout_test.rb",
199
+ "test/session_test/unauthorized_record_test.rb",
200
+ "test/session_test/validation_test.rb",
201
+ "test/test_helper.rb"
202
+ ]
203
+
204
+ if s.respond_to? :specification_version then
205
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
206
+ s.specification_version = 3
207
+
208
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
209
+ s.add_runtime_dependency(%q<activesupport>, [">= 0"])
210
+ else
211
+ s.add_dependency(%q<activesupport>, [">= 0"])
212
+ end
213
+ else
214
+ s.add_dependency(%q<activesupport>, [">= 0"])
215
+ end
216
+ end
217
+
data/lib/authlogic.rb ADDED
@@ -0,0 +1,64 @@
1
+ require "active_record"
2
+
3
+ AUTHLOGIC_PATH = File.dirname(__FILE__) + "/authlogic/"
4
+
5
+ [
6
+ "i18n",
7
+ "random",
8
+ "regex",
9
+
10
+ "controller_adapters/abstract_adapter",
11
+
12
+ "crypto_providers/md5",
13
+ "crypto_providers/sha1",
14
+ "crypto_providers/sha256",
15
+ "crypto_providers/sha512",
16
+ "crypto_providers/bcrypt",
17
+ "crypto_providers/aes256",
18
+
19
+ "authenticates_many/base",
20
+ "authenticates_many/association",
21
+
22
+ "acts_as_authentic/email",
23
+ "acts_as_authentic/logged_in_status",
24
+ "acts_as_authentic/login",
25
+ "acts_as_authentic/magic_columns",
26
+ "acts_as_authentic/password",
27
+ "acts_as_authentic/perishable_token",
28
+ "acts_as_authentic/persistence_token",
29
+ "acts_as_authentic/restful_authentication",
30
+ "acts_as_authentic/session_maintenance",
31
+ "acts_as_authentic/single_access_token",
32
+ "acts_as_authentic/validations_scope",
33
+ "acts_as_authentic/base",
34
+
35
+ "session/activation",
36
+ "session/active_record_trickery",
37
+ "session/brute_force_protection",
38
+ "session/callbacks",
39
+ "session/cookies",
40
+ "session/existence",
41
+ "session/foundation",
42
+ "session/http_auth",
43
+ "session/id",
44
+ "session/klass",
45
+ "session/magic_columns",
46
+ "session/magic_states",
47
+ "session/params",
48
+ "session/password",
49
+ "session/perishable_token",
50
+ "session/persistence",
51
+ "session/priority_record",
52
+ "session/scopes",
53
+ "session/session",
54
+ "session/timeout",
55
+ "session/unauthorized_record",
56
+ "session/validation",
57
+ "session/base"
58
+ ].each do |library|
59
+ require AUTHLOGIC_PATH + library
60
+ end
61
+
62
+ require AUTHLOGIC_PATH + "controller_adapters/rails_adapter" if defined?( Rails )
63
+ require AUTHLOGIC_PATH + "controller_adapters/merb_adapter" if defined?( Merb )
64
+ require AUTHLOGIC_PATH + "controller_adapters/sinatra_adapter" if defined?( Sinatra )
@@ -0,0 +1,107 @@
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
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::Base
96
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::Email
97
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::LoggedInStatus
98
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::Login
99
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::MagicColumns
100
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::Password
101
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::PerishableToken
102
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::PersistenceToken
103
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::RestfulAuthentication
104
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::SessionMaintenance
105
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::SingleAccessToken
106
+ ::ActiveRecord::Base.send :include, Authlogic::ActsAsAuthentic::ValidationsScope
107
+