drogus-authlogic 2.1.3

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 (126) 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 +42 -0
  6. data/VERSION.yml +5 -0
  7. data/authlogic.gemspec +217 -0
  8. data/generators/session/session_generator.rb +9 -0
  9. data/generators/session/templates/session.rb +2 -0
  10. data/init.rb +1 -0
  11. data/lib/authlogic.rb +64 -0
  12. data/lib/authlogic/acts_as_authentic/base.rb +107 -0
  13. data/lib/authlogic/acts_as_authentic/email.rb +110 -0
  14. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +60 -0
  15. data/lib/authlogic/acts_as_authentic/login.rb +137 -0
  16. data/lib/authlogic/acts_as_authentic/magic_columns.rb +24 -0
  17. data/lib/authlogic/acts_as_authentic/password.rb +355 -0
  18. data/lib/authlogic/acts_as_authentic/perishable_token.rb +105 -0
  19. data/lib/authlogic/acts_as_authentic/persistence_token.rb +68 -0
  20. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +61 -0
  21. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +139 -0
  22. data/lib/authlogic/acts_as_authentic/single_access_token.rb +65 -0
  23. data/lib/authlogic/acts_as_authentic/validations_scope.rb +32 -0
  24. data/lib/authlogic/authenticates_many/association.rb +42 -0
  25. data/lib/authlogic/authenticates_many/base.rb +55 -0
  26. data/lib/authlogic/controller_adapters/abstract_adapter.rb +67 -0
  27. data/lib/authlogic/controller_adapters/merb_adapter.rb +30 -0
  28. data/lib/authlogic/controller_adapters/rails_adapter.rb +48 -0
  29. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +61 -0
  30. data/lib/authlogic/crypto_providers/aes256.rb +43 -0
  31. data/lib/authlogic/crypto_providers/bcrypt.rb +90 -0
  32. data/lib/authlogic/crypto_providers/md5.rb +34 -0
  33. data/lib/authlogic/crypto_providers/sha1.rb +35 -0
  34. data/lib/authlogic/crypto_providers/sha256.rb +50 -0
  35. data/lib/authlogic/crypto_providers/sha512.rb +50 -0
  36. data/lib/authlogic/crypto_providers/wordpress.rb +43 -0
  37. data/lib/authlogic/i18n.rb +83 -0
  38. data/lib/authlogic/i18n/translator.rb +15 -0
  39. data/lib/authlogic/random.rb +33 -0
  40. data/lib/authlogic/regex.rb +25 -0
  41. data/lib/authlogic/session/activation.rb +58 -0
  42. data/lib/authlogic/session/active_record_trickery.rb +64 -0
  43. data/lib/authlogic/session/base.rb +37 -0
  44. data/lib/authlogic/session/brute_force_protection.rb +96 -0
  45. data/lib/authlogic/session/callbacks.rb +99 -0
  46. data/lib/authlogic/session/cookies.rb +130 -0
  47. data/lib/authlogic/session/existence.rb +93 -0
  48. data/lib/authlogic/session/foundation.rb +63 -0
  49. data/lib/authlogic/session/http_auth.rb +58 -0
  50. data/lib/authlogic/session/id.rb +41 -0
  51. data/lib/authlogic/session/klass.rb +78 -0
  52. data/lib/authlogic/session/magic_columns.rb +95 -0
  53. data/lib/authlogic/session/magic_states.rb +59 -0
  54. data/lib/authlogic/session/params.rb +101 -0
  55. data/lib/authlogic/session/password.rb +240 -0
  56. data/lib/authlogic/session/perishable_token.rb +18 -0
  57. data/lib/authlogic/session/persistence.rb +70 -0
  58. data/lib/authlogic/session/priority_record.rb +34 -0
  59. data/lib/authlogic/session/scopes.rb +101 -0
  60. data/lib/authlogic/session/session.rb +62 -0
  61. data/lib/authlogic/session/timeout.rb +82 -0
  62. data/lib/authlogic/session/unauthorized_record.rb +50 -0
  63. data/lib/authlogic/session/validation.rb +82 -0
  64. data/lib/authlogic/test_case.rb +120 -0
  65. data/lib/authlogic/test_case/mock_controller.rb +45 -0
  66. data/lib/authlogic/test_case/mock_cookie_jar.rb +14 -0
  67. data/lib/authlogic/test_case/mock_logger.rb +10 -0
  68. data/lib/authlogic/test_case/mock_request.rb +19 -0
  69. data/lib/authlogic/test_case/rails_request_adapter.rb +30 -0
  70. data/rails/init.rb +1 -0
  71. data/shoulda_macros/authlogic.rb +69 -0
  72. data/test/acts_as_authentic_test/base_test.rb +18 -0
  73. data/test/acts_as_authentic_test/email_test.rb +97 -0
  74. data/test/acts_as_authentic_test/logged_in_status_test.rb +36 -0
  75. data/test/acts_as_authentic_test/login_test.rb +109 -0
  76. data/test/acts_as_authentic_test/magic_columns_test.rb +27 -0
  77. data/test/acts_as_authentic_test/password_test.rb +236 -0
  78. data/test/acts_as_authentic_test/perishable_token_test.rb +90 -0
  79. data/test/acts_as_authentic_test/persistence_token_test.rb +55 -0
  80. data/test/acts_as_authentic_test/restful_authentication_test.rb +40 -0
  81. data/test/acts_as_authentic_test/session_maintenance_test.rb +84 -0
  82. data/test/acts_as_authentic_test/single_access_test.rb +44 -0
  83. data/test/authenticates_many_test.rb +16 -0
  84. data/test/crypto_provider_test/aes256_test.rb +14 -0
  85. data/test/crypto_provider_test/bcrypt_test.rb +14 -0
  86. data/test/crypto_provider_test/sha1_test.rb +23 -0
  87. data/test/crypto_provider_test/sha256_test.rb +14 -0
  88. data/test/crypto_provider_test/sha512_test.rb +14 -0
  89. data/test/fixtures/companies.yml +5 -0
  90. data/test/fixtures/employees.yml +17 -0
  91. data/test/fixtures/projects.yml +3 -0
  92. data/test/fixtures/users.yml +24 -0
  93. data/test/i18n_test.rb +33 -0
  94. data/test/libs/affiliate.rb +7 -0
  95. data/test/libs/company.rb +6 -0
  96. data/test/libs/employee.rb +7 -0
  97. data/test/libs/employee_session.rb +2 -0
  98. data/test/libs/ldaper.rb +3 -0
  99. data/test/libs/ordered_hash.rb +9 -0
  100. data/test/libs/project.rb +3 -0
  101. data/test/libs/user.rb +5 -0
  102. data/test/libs/user_session.rb +6 -0
  103. data/test/random_test.rb +49 -0
  104. data/test/session_test/activation_test.rb +43 -0
  105. data/test/session_test/active_record_trickery_test.rb +36 -0
  106. data/test/session_test/brute_force_protection_test.rb +101 -0
  107. data/test/session_test/callbacks_test.rb +6 -0
  108. data/test/session_test/cookies_test.rb +112 -0
  109. data/test/session_test/credentials_test.rb +0 -0
  110. data/test/session_test/existence_test.rb +64 -0
  111. data/test/session_test/http_auth_test.rb +28 -0
  112. data/test/session_test/id_test.rb +17 -0
  113. data/test/session_test/klass_test.rb +40 -0
  114. data/test/session_test/magic_columns_test.rb +62 -0
  115. data/test/session_test/magic_states_test.rb +60 -0
  116. data/test/session_test/params_test.rb +53 -0
  117. data/test/session_test/password_test.rb +106 -0
  118. data/test/session_test/perishability_test.rb +15 -0
  119. data/test/session_test/persistence_test.rb +21 -0
  120. data/test/session_test/scopes_test.rb +60 -0
  121. data/test/session_test/session_test.rb +59 -0
  122. data/test/session_test/timeout_test.rb +52 -0
  123. data/test/session_test/unauthorized_record_test.rb +13 -0
  124. data/test/session_test/validation_test.rb +23 -0
  125. data/test/test_helper.rb +182 -0
  126. metadata +238 -0
@@ -0,0 +1,42 @@
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
+ Jeweler::RubyforgeTasks.new
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
+ end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'test'
23
+ test.pattern = 'test/**/*_test.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ begin
28
+ require 'rcov/rcovtask'
29
+ Rcov::RcovTask.new do |test|
30
+ test.libs << 'test'
31
+ test.pattern = 'test/**/*_test.rb'
32
+ test.verbose = true
33
+ end
34
+ rescue LoadError
35
+ task :rcov do
36
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
+ end
38
+ end
39
+
40
+ task :test => :check_dependencies
41
+
42
+ task :default => :test
@@ -0,0 +1,5 @@
1
+ ---
2
+ :minor: 1
3
+ :patch: 3
4
+ :build:
5
+ :major: 2
@@ -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{drogus-authlogic}
8
+ s.version = "2.1.3"
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"]
12
+ s.date = %q{2010-02-09}
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
+ "authlogic.gemspec",
26
+ "generators/session/session_generator.rb",
27
+ "generators/session/templates/session.rb",
28
+ "init.rb",
29
+ "lib/authlogic.rb",
30
+ "lib/authlogic/acts_as_authentic/base.rb",
31
+ "lib/authlogic/acts_as_authentic/email.rb",
32
+ "lib/authlogic/acts_as_authentic/logged_in_status.rb",
33
+ "lib/authlogic/acts_as_authentic/login.rb",
34
+ "lib/authlogic/acts_as_authentic/magic_columns.rb",
35
+ "lib/authlogic/acts_as_authentic/password.rb",
36
+ "lib/authlogic/acts_as_authentic/perishable_token.rb",
37
+ "lib/authlogic/acts_as_authentic/persistence_token.rb",
38
+ "lib/authlogic/acts_as_authentic/restful_authentication.rb",
39
+ "lib/authlogic/acts_as_authentic/session_maintenance.rb",
40
+ "lib/authlogic/acts_as_authentic/single_access_token.rb",
41
+ "lib/authlogic/acts_as_authentic/validations_scope.rb",
42
+ "lib/authlogic/authenticates_many/association.rb",
43
+ "lib/authlogic/authenticates_many/base.rb",
44
+ "lib/authlogic/controller_adapters/abstract_adapter.rb",
45
+ "lib/authlogic/controller_adapters/merb_adapter.rb",
46
+ "lib/authlogic/controller_adapters/rails_adapter.rb",
47
+ "lib/authlogic/controller_adapters/sinatra_adapter.rb",
48
+ "lib/authlogic/crypto_providers/aes256.rb",
49
+ "lib/authlogic/crypto_providers/bcrypt.rb",
50
+ "lib/authlogic/crypto_providers/md5.rb",
51
+ "lib/authlogic/crypto_providers/sha1.rb",
52
+ "lib/authlogic/crypto_providers/sha256.rb",
53
+ "lib/authlogic/crypto_providers/sha512.rb",
54
+ "lib/authlogic/crypto_providers/wordpress.rb",
55
+ "lib/authlogic/i18n.rb",
56
+ "lib/authlogic/i18n/translator.rb",
57
+ "lib/authlogic/random.rb",
58
+ "lib/authlogic/regex.rb",
59
+ "lib/authlogic/session/activation.rb",
60
+ "lib/authlogic/session/active_record_trickery.rb",
61
+ "lib/authlogic/session/base.rb",
62
+ "lib/authlogic/session/brute_force_protection.rb",
63
+ "lib/authlogic/session/callbacks.rb",
64
+ "lib/authlogic/session/cookies.rb",
65
+ "lib/authlogic/session/existence.rb",
66
+ "lib/authlogic/session/foundation.rb",
67
+ "lib/authlogic/session/http_auth.rb",
68
+ "lib/authlogic/session/id.rb",
69
+ "lib/authlogic/session/klass.rb",
70
+ "lib/authlogic/session/magic_columns.rb",
71
+ "lib/authlogic/session/magic_states.rb",
72
+ "lib/authlogic/session/params.rb",
73
+ "lib/authlogic/session/password.rb",
74
+ "lib/authlogic/session/perishable_token.rb",
75
+ "lib/authlogic/session/persistence.rb",
76
+ "lib/authlogic/session/priority_record.rb",
77
+ "lib/authlogic/session/scopes.rb",
78
+ "lib/authlogic/session/session.rb",
79
+ "lib/authlogic/session/timeout.rb",
80
+ "lib/authlogic/session/unauthorized_record.rb",
81
+ "lib/authlogic/session/validation.rb",
82
+ "lib/authlogic/test_case.rb",
83
+ "lib/authlogic/test_case/mock_controller.rb",
84
+ "lib/authlogic/test_case/mock_cookie_jar.rb",
85
+ "lib/authlogic/test_case/mock_logger.rb",
86
+ "lib/authlogic/test_case/mock_request.rb",
87
+ "lib/authlogic/test_case/rails_request_adapter.rb",
88
+ "rails/init.rb",
89
+ "shoulda_macros/authlogic.rb",
90
+ "test/acts_as_authentic_test/base_test.rb",
91
+ "test/acts_as_authentic_test/email_test.rb",
92
+ "test/acts_as_authentic_test/logged_in_status_test.rb",
93
+ "test/acts_as_authentic_test/login_test.rb",
94
+ "test/acts_as_authentic_test/magic_columns_test.rb",
95
+ "test/acts_as_authentic_test/password_test.rb",
96
+ "test/acts_as_authentic_test/perishable_token_test.rb",
97
+ "test/acts_as_authentic_test/persistence_token_test.rb",
98
+ "test/acts_as_authentic_test/restful_authentication_test.rb",
99
+ "test/acts_as_authentic_test/session_maintenance_test.rb",
100
+ "test/acts_as_authentic_test/single_access_test.rb",
101
+ "test/authenticates_many_test.rb",
102
+ "test/crypto_provider_test/aes256_test.rb",
103
+ "test/crypto_provider_test/bcrypt_test.rb",
104
+ "test/crypto_provider_test/sha1_test.rb",
105
+ "test/crypto_provider_test/sha256_test.rb",
106
+ "test/crypto_provider_test/sha512_test.rb",
107
+ "test/fixtures/companies.yml",
108
+ "test/fixtures/employees.yml",
109
+ "test/fixtures/projects.yml",
110
+ "test/fixtures/users.yml",
111
+ "test/i18n_test.rb",
112
+ "test/libs/affiliate.rb",
113
+ "test/libs/company.rb",
114
+ "test/libs/employee.rb",
115
+ "test/libs/employee_session.rb",
116
+ "test/libs/ldaper.rb",
117
+ "test/libs/ordered_hash.rb",
118
+ "test/libs/project.rb",
119
+ "test/libs/user.rb",
120
+ "test/libs/user_session.rb",
121
+ "test/random_test.rb",
122
+ "test/session_test/activation_test.rb",
123
+ "test/session_test/active_record_trickery_test.rb",
124
+ "test/session_test/brute_force_protection_test.rb",
125
+ "test/session_test/callbacks_test.rb",
126
+ "test/session_test/cookies_test.rb",
127
+ "test/session_test/credentials_test.rb",
128
+ "test/session_test/existence_test.rb",
129
+ "test/session_test/http_auth_test.rb",
130
+ "test/session_test/id_test.rb",
131
+ "test/session_test/klass_test.rb",
132
+ "test/session_test/magic_columns_test.rb",
133
+ "test/session_test/magic_states_test.rb",
134
+ "test/session_test/params_test.rb",
135
+ "test/session_test/password_test.rb",
136
+ "test/session_test/perishability_test.rb",
137
+ "test/session_test/persistence_test.rb",
138
+ "test/session_test/scopes_test.rb",
139
+ "test/session_test/session_test.rb",
140
+ "test/session_test/timeout_test.rb",
141
+ "test/session_test/unauthorized_record_test.rb",
142
+ "test/session_test/validation_test.rb",
143
+ "test/test_helper.rb"
144
+ ]
145
+ s.homepage = %q{http://github.com/binarylogic/authlogic}
146
+ s.rdoc_options = ["--charset=UTF-8"]
147
+ s.require_paths = ["lib"]
148
+ s.rubyforge_project = %q{authlogic}
149
+ s.rubygems_version = %q{1.3.5}
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::RubyGemsVersion) >= 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
+
@@ -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"
@@ -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
+