authlogic 4.5.0 → 6.4.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.
- checksums.yaml +4 -4
- data/lib/authlogic/acts_as_authentic/base.rb +19 -19
- data/lib/authlogic/acts_as_authentic/email.rb +3 -170
- data/lib/authlogic/acts_as_authentic/logged_in_status.rb +3 -1
- data/lib/authlogic/acts_as_authentic/login.rb +7 -174
- data/lib/authlogic/acts_as_authentic/magic_columns.rb +7 -4
- data/lib/authlogic/acts_as_authentic/password.rb +67 -256
- data/lib/authlogic/acts_as_authentic/perishable_token.rb +8 -5
- data/lib/authlogic/acts_as_authentic/persistence_token.rb +10 -4
- data/lib/authlogic/acts_as_authentic/queries/case_sensitivity.rb +53 -0
- data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +36 -20
- data/lib/authlogic/acts_as_authentic/session_maintenance.rb +12 -8
- data/lib/authlogic/acts_as_authentic/single_access_token.rb +10 -8
- data/lib/authlogic/config.rb +9 -1
- data/lib/authlogic/controller_adapters/abstract_adapter.rb +28 -4
- data/lib/authlogic/controller_adapters/rack_adapter.rb +2 -0
- data/lib/authlogic/controller_adapters/rails_adapter.rb +7 -30
- data/lib/authlogic/controller_adapters/sinatra_adapter.rb +6 -0
- data/lib/authlogic/cookie_credentials.rb +63 -0
- data/lib/authlogic/crypto_providers/bcrypt.rb +3 -3
- data/lib/authlogic/crypto_providers/md5/v2.rb +35 -0
- data/lib/authlogic/crypto_providers/md5.rb +6 -6
- data/lib/authlogic/crypto_providers/scrypt.rb +2 -0
- data/lib/authlogic/crypto_providers/sha1/v2.rb +41 -0
- data/lib/authlogic/crypto_providers/sha1.rb +7 -6
- data/lib/authlogic/crypto_providers/sha256/v2.rb +58 -0
- data/lib/authlogic/crypto_providers/sha256.rb +5 -0
- data/lib/authlogic/crypto_providers/sha512/v2.rb +39 -0
- data/lib/authlogic/crypto_providers/sha512.rb +9 -5
- data/lib/authlogic/crypto_providers.rb +5 -20
- data/lib/authlogic/errors.rb +50 -0
- data/lib/authlogic/i18n/translator.rb +4 -1
- data/lib/authlogic/i18n.rb +3 -1
- data/lib/authlogic/random.rb +2 -0
- data/lib/authlogic/session/base.rb +2197 -39
- data/lib/authlogic/session/magic_column/assigns_last_request_at.rb +46 -0
- data/lib/authlogic/test_case/mock_api_controller.rb +52 -0
- data/lib/authlogic/test_case/mock_controller.rb +3 -1
- data/lib/authlogic/test_case/mock_cookie_jar.rb +32 -6
- data/lib/authlogic/test_case/mock_logger.rb +2 -0
- data/lib/authlogic/test_case/mock_request.rb +12 -0
- data/lib/authlogic/test_case/rails_request_adapter.rb +9 -1
- data/lib/authlogic/test_case.rb +5 -0
- data/lib/authlogic/version.rb +2 -1
- data/lib/authlogic.rb +5 -28
- metadata +175 -200
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -28
- data/.github/ISSUE_TEMPLATE/feature_proposal.md +0 -32
- data/.github/triage.md +0 -86
- data/.gitignore +0 -15
- data/.rubocop.yml +0 -133
- data/.rubocop_todo.yml +0 -74
- data/.travis.yml +0 -24
- data/CHANGELOG.md +0 -348
- data/CONTRIBUTING.md +0 -91
- data/Gemfile +0 -6
- data/LICENSE +0 -20
- data/README.md +0 -448
- data/Rakefile +0 -21
- data/UPGRADING.md +0 -22
- data/authlogic.gemspec +0 -40
- data/doc/use_normal_rails_validation.md +0 -82
- data/gemfiles/Gemfile.rails-4.2.x +0 -6
- data/gemfiles/Gemfile.rails-5.1.x +0 -6
- data/gemfiles/Gemfile.rails-5.2.x +0 -6
- data/lib/authlogic/acts_as_authentic/restful_authentication.rb +0 -106
- data/lib/authlogic/acts_as_authentic/validations_scope.rb +0 -35
- data/lib/authlogic/authenticates_many/association.rb +0 -50
- data/lib/authlogic/authenticates_many/base.rb +0 -81
- data/lib/authlogic/crypto_providers/aes256.rb +0 -71
- data/lib/authlogic/crypto_providers/wordpress.rb +0 -72
- data/lib/authlogic/regex.rb +0 -79
- data/lib/authlogic/session/activation.rb +0 -73
- data/lib/authlogic/session/active_record_trickery.rb +0 -65
- data/lib/authlogic/session/brute_force_protection.rb +0 -127
- data/lib/authlogic/session/callbacks.rb +0 -153
- data/lib/authlogic/session/cookies.rb +0 -329
- data/lib/authlogic/session/existence.rb +0 -103
- data/lib/authlogic/session/foundation.rb +0 -105
- data/lib/authlogic/session/http_auth.rb +0 -107
- data/lib/authlogic/session/id.rb +0 -53
- data/lib/authlogic/session/klass.rb +0 -73
- data/lib/authlogic/session/magic_columns.rb +0 -119
- data/lib/authlogic/session/magic_states.rb +0 -82
- data/lib/authlogic/session/params.rb +0 -130
- data/lib/authlogic/session/password.rb +0 -318
- data/lib/authlogic/session/perishable_token.rb +0 -24
- data/lib/authlogic/session/persistence.rb +0 -77
- data/lib/authlogic/session/priority_record.rb +0 -38
- data/lib/authlogic/session/scopes.rb +0 -138
- data/lib/authlogic/session/session.rb +0 -77
- data/lib/authlogic/session/timeout.rb +0 -103
- data/lib/authlogic/session/unauthorized_record.rb +0 -56
- data/lib/authlogic/session/validation.rb +0 -93
- data/test/acts_as_authentic_test/base_test.rb +0 -27
- data/test/acts_as_authentic_test/email_test.rb +0 -241
- data/test/acts_as_authentic_test/logged_in_status_test.rb +0 -64
- data/test/acts_as_authentic_test/login_test.rb +0 -153
- data/test/acts_as_authentic_test/magic_columns_test.rb +0 -29
- data/test/acts_as_authentic_test/password_test.rb +0 -263
- data/test/acts_as_authentic_test/perishable_token_test.rb +0 -98
- data/test/acts_as_authentic_test/persistence_token_test.rb +0 -62
- data/test/acts_as_authentic_test/restful_authentication_test.rb +0 -48
- data/test/acts_as_authentic_test/session_maintenance_test.rb +0 -150
- data/test/acts_as_authentic_test/single_access_test.rb +0 -46
- data/test/adapter_test.rb +0 -23
- data/test/authenticates_many_test.rb +0 -33
- data/test/config_test.rb +0 -38
- data/test/crypto_provider_test/aes256_test.rb +0 -16
- data/test/crypto_provider_test/bcrypt_test.rb +0 -16
- data/test/crypto_provider_test/scrypt_test.rb +0 -16
- data/test/crypto_provider_test/sha1_test.rb +0 -25
- data/test/crypto_provider_test/sha256_test.rb +0 -16
- data/test/crypto_provider_test/sha512_test.rb +0 -16
- data/test/crypto_provider_test/wordpress_test.rb +0 -26
- data/test/fixtures/companies.yml +0 -5
- data/test/fixtures/employees.yml +0 -17
- data/test/fixtures/projects.yml +0 -3
- data/test/fixtures/users.yml +0 -41
- data/test/i18n/lol.yml +0 -4
- data/test/i18n_test.rb +0 -35
- data/test/libs/affiliate.rb +0 -9
- data/test/libs/company.rb +0 -8
- data/test/libs/employee.rb +0 -9
- data/test/libs/employee_session.rb +0 -4
- data/test/libs/ldaper.rb +0 -5
- data/test/libs/project.rb +0 -5
- data/test/libs/user.rb +0 -9
- data/test/libs/user_session.rb +0 -27
- data/test/random_test.rb +0 -15
- data/test/session_test/activation_test.rb +0 -45
- data/test/session_test/active_record_trickery_test.rb +0 -78
- data/test/session_test/brute_force_protection_test.rb +0 -110
- data/test/session_test/callbacks_test.rb +0 -42
- data/test/session_test/cookies_test.rb +0 -244
- data/test/session_test/credentials_test.rb +0 -0
- data/test/session_test/existence_test.rb +0 -88
- data/test/session_test/foundation_test.rb +0 -24
- data/test/session_test/http_auth_test.rb +0 -60
- data/test/session_test/id_test.rb +0 -19
- data/test/session_test/klass_test.rb +0 -42
- data/test/session_test/magic_columns_test.rb +0 -62
- data/test/session_test/magic_states_test.rb +0 -60
- data/test/session_test/params_test.rb +0 -61
- data/test/session_test/password_test.rb +0 -107
- data/test/session_test/perishability_test.rb +0 -17
- data/test/session_test/persistence_test.rb +0 -35
- data/test/session_test/scopes_test.rb +0 -68
- data/test/session_test/session_test.rb +0 -80
- data/test/session_test/timeout_test.rb +0 -84
- data/test/session_test/unauthorized_record_test.rb +0 -15
- data/test/session_test/validation_test.rb +0 -25
- data/test/test_helper.rb +0 -272
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
class CallbacksTest < ActiveSupport::TestCase
|
7
|
-
def setup
|
8
|
-
WackyUserSession.reset_callbacks(:persist)
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_no_callbacks
|
12
|
-
assert_equal [], WackyUserSession._persist_callbacks.map(&:filter)
|
13
|
-
session = WackyUserSession.new
|
14
|
-
session.send(:persist)
|
15
|
-
assert_equal 0, session.counter
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_true_callback_cancelling_later_callbacks
|
19
|
-
WackyUserSession.persist :persist_by_true, :persist_by_false
|
20
|
-
assert_equal(
|
21
|
-
%i[persist_by_true persist_by_false],
|
22
|
-
WackyUserSession._persist_callbacks.map(&:filter)
|
23
|
-
)
|
24
|
-
|
25
|
-
session = WackyUserSession.new
|
26
|
-
session.send(:persist)
|
27
|
-
assert_equal 1, session.counter
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_false_callback_continuing_to_later_callbacks
|
31
|
-
WackyUserSession.persist :persist_by_false, :persist_by_true
|
32
|
-
assert_equal(
|
33
|
-
%i[persist_by_false persist_by_true],
|
34
|
-
WackyUserSession._persist_callbacks.map(&:filter)
|
35
|
-
)
|
36
|
-
|
37
|
-
session = WackyUserSession.new
|
38
|
-
session.send(:persist)
|
39
|
-
assert_equal 2, session.counter
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,244 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
module CookiesTest
|
7
|
-
class ConfigTest < ActiveSupport::TestCase
|
8
|
-
def test_cookie_key
|
9
|
-
UserSession.cookie_key = "my_cookie_key"
|
10
|
-
assert_equal "my_cookie_key", UserSession.cookie_key
|
11
|
-
|
12
|
-
UserSession.cookie_key "user_credentials"
|
13
|
-
assert_equal "user_credentials", UserSession.cookie_key
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_default_cookie_key
|
17
|
-
assert_equal "user_credentials", UserSession.cookie_key
|
18
|
-
assert_equal "back_office_user_credentials", BackOfficeUserSession.cookie_key
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_remember_me
|
22
|
-
UserSession.remember_me = true
|
23
|
-
assert_equal true, UserSession.remember_me
|
24
|
-
session = UserSession.new
|
25
|
-
assert_equal true, session.remember_me
|
26
|
-
|
27
|
-
UserSession.remember_me false
|
28
|
-
assert_equal false, UserSession.remember_me
|
29
|
-
session = UserSession.new
|
30
|
-
assert_equal false, session.remember_me
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_remember_me_for
|
34
|
-
UserSession.remember_me_for = 3.years
|
35
|
-
assert_equal 3.years, UserSession.remember_me_for
|
36
|
-
session = UserSession.new
|
37
|
-
session.remember_me = true
|
38
|
-
assert_equal 3.years, session.remember_me_for
|
39
|
-
|
40
|
-
UserSession.remember_me_for 3.months
|
41
|
-
assert_equal 3.months, UserSession.remember_me_for
|
42
|
-
session = UserSession.new
|
43
|
-
session.remember_me = true
|
44
|
-
assert_equal 3.months, session.remember_me_for
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_secure
|
48
|
-
assert_equal true, UserSession.secure
|
49
|
-
session = UserSession.new
|
50
|
-
assert_equal true, session.secure
|
51
|
-
|
52
|
-
UserSession.secure false
|
53
|
-
assert_equal false, UserSession.secure
|
54
|
-
session = UserSession.new
|
55
|
-
assert_equal false, session.secure
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_httponly
|
59
|
-
assert_equal true, UserSession.httponly
|
60
|
-
session = UserSession.new
|
61
|
-
assert_equal true, session.httponly
|
62
|
-
|
63
|
-
UserSession.httponly false
|
64
|
-
assert_equal false, UserSession.httponly
|
65
|
-
session = UserSession.new
|
66
|
-
assert_equal false, session.httponly
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_same_site
|
70
|
-
assert_nil UserSession.same_site
|
71
|
-
assert_nil UserSession.new.same_site
|
72
|
-
|
73
|
-
UserSession.same_site "Strict"
|
74
|
-
assert_equal "Strict", UserSession.same_site
|
75
|
-
session = UserSession.new
|
76
|
-
assert_equal "Strict", session.same_site
|
77
|
-
session.same_site = "Lax"
|
78
|
-
assert_equal "Lax", session.same_site
|
79
|
-
session.same_site = "None"
|
80
|
-
assert_equal "None", session.same_site
|
81
|
-
|
82
|
-
assert_raise(ArgumentError) { UserSession.same_site "foo" }
|
83
|
-
assert_raise(ArgumentError) { UserSession.new.same_site "foo" }
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_sign_cookie
|
87
|
-
UserSession.sign_cookie = true
|
88
|
-
assert_equal true, UserSession.sign_cookie
|
89
|
-
session = UserSession.new
|
90
|
-
assert_equal true, session.sign_cookie
|
91
|
-
|
92
|
-
UserSession.sign_cookie false
|
93
|
-
assert_equal false, UserSession.sign_cookie
|
94
|
-
session = UserSession.new
|
95
|
-
assert_equal false, session.sign_cookie
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
100
|
-
def test_credentials
|
101
|
-
session = UserSession.new
|
102
|
-
session.credentials = { remember_me: true }
|
103
|
-
assert_equal true, session.remember_me
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_remember_me
|
107
|
-
session = UserSession.new
|
108
|
-
assert_equal false, session.remember_me
|
109
|
-
refute session.remember_me?
|
110
|
-
|
111
|
-
session.remember_me = false
|
112
|
-
assert_equal false, session.remember_me
|
113
|
-
refute session.remember_me?
|
114
|
-
|
115
|
-
session.remember_me = true
|
116
|
-
assert_equal true, session.remember_me
|
117
|
-
assert session.remember_me?
|
118
|
-
|
119
|
-
session.remember_me = nil
|
120
|
-
assert_nil session.remember_me
|
121
|
-
refute session.remember_me?
|
122
|
-
|
123
|
-
session.remember_me = "1"
|
124
|
-
assert_equal "1", session.remember_me
|
125
|
-
assert session.remember_me?
|
126
|
-
|
127
|
-
session.remember_me = "true"
|
128
|
-
assert_equal "true", session.remember_me
|
129
|
-
assert session.remember_me?
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_remember_me_until
|
133
|
-
session = UserSession.new
|
134
|
-
assert_nil session.remember_me_until
|
135
|
-
|
136
|
-
session.remember_me = true
|
137
|
-
assert 3.months.from_now <= session.remember_me_until
|
138
|
-
end
|
139
|
-
|
140
|
-
def test_persist_persist_by_cookie
|
141
|
-
ben = users(:ben)
|
142
|
-
refute UserSession.find
|
143
|
-
set_cookie_for(ben)
|
144
|
-
assert session = UserSession.find
|
145
|
-
assert_equal ben, session.record
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_persist_persist_by_cookie_with_blank_persistence_token
|
149
|
-
ben = users(:ben)
|
150
|
-
ben.update_column(:persistence_token, "")
|
151
|
-
refute UserSession.find
|
152
|
-
set_cookie_for(ben)
|
153
|
-
refute UserSession.find
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_remember_me_expired
|
157
|
-
ben = users(:ben)
|
158
|
-
session = UserSession.new(ben)
|
159
|
-
session.remember_me = true
|
160
|
-
assert session.save
|
161
|
-
refute session.remember_me_expired?
|
162
|
-
|
163
|
-
session = UserSession.new(ben)
|
164
|
-
session.remember_me = false
|
165
|
-
assert session.save
|
166
|
-
refute session.remember_me_expired?
|
167
|
-
end
|
168
|
-
|
169
|
-
def test_after_save_save_cookie
|
170
|
-
ben = users(:ben)
|
171
|
-
session = UserSession.new(ben)
|
172
|
-
assert session.save
|
173
|
-
assert_equal(
|
174
|
-
"#{ben.persistence_token}::#{ben.id}",
|
175
|
-
controller.cookies["user_credentials"]
|
176
|
-
)
|
177
|
-
end
|
178
|
-
|
179
|
-
def test_after_save_save_cookie_encrypted
|
180
|
-
ben = users(:ben)
|
181
|
-
|
182
|
-
assert_nil controller.cookies["user_credentials"]
|
183
|
-
payload = "#{ben.persistence_token}::#{ben.id}"
|
184
|
-
|
185
|
-
session = UserSession.new(ben)
|
186
|
-
session.encrypt_cookie = true
|
187
|
-
assert session.save
|
188
|
-
assert_equal payload, controller.cookies.encrypted["user_credentials"]
|
189
|
-
assert_equal(
|
190
|
-
Authlogic::TestCase::MockEncryptedCookieJar.encrypt(payload),
|
191
|
-
controller.cookies.encrypted.parent_jar["user_credentials"]
|
192
|
-
)
|
193
|
-
end
|
194
|
-
|
195
|
-
def test_after_save_save_cookie_signed
|
196
|
-
ben = users(:ben)
|
197
|
-
|
198
|
-
assert_nil controller.cookies["user_credentials"]
|
199
|
-
payload = "#{ben.persistence_token}::#{ben.id}"
|
200
|
-
|
201
|
-
session = UserSession.new(ben)
|
202
|
-
session.sign_cookie = true
|
203
|
-
assert session.save
|
204
|
-
assert_equal payload, controller.cookies.signed["user_credentials"]
|
205
|
-
assert_equal(
|
206
|
-
"#{payload}--#{Digest::SHA1.hexdigest payload}",
|
207
|
-
controller.cookies.signed.parent_jar["user_credentials"]
|
208
|
-
)
|
209
|
-
end
|
210
|
-
|
211
|
-
def test_after_save_save_cookie_with_remember_me
|
212
|
-
Timecop.freeze do
|
213
|
-
ben = users(:ben)
|
214
|
-
session = UserSession.new(ben)
|
215
|
-
session.remember_me = true
|
216
|
-
assert session.save
|
217
|
-
assert_equal(
|
218
|
-
"#{ben.persistence_token}::#{ben.id}::#{session.remember_me_until.iso8601}",
|
219
|
-
controller.cookies["user_credentials"]
|
220
|
-
)
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
224
|
-
def test_after_save_save_cookie_with_same_site
|
225
|
-
session = UserSession.new(users(:ben))
|
226
|
-
session.same_site = "Strict"
|
227
|
-
assert session.save
|
228
|
-
assert_equal(
|
229
|
-
"Strict",
|
230
|
-
controller.cookies.set_cookies["user_credentials"][:same_site]
|
231
|
-
)
|
232
|
-
end
|
233
|
-
|
234
|
-
def test_after_destroy_destroy_cookie
|
235
|
-
ben = users(:ben)
|
236
|
-
set_cookie_for(ben)
|
237
|
-
session = UserSession.find
|
238
|
-
assert controller.cookies["user_credentials"]
|
239
|
-
assert session.destroy
|
240
|
-
refute controller.cookies["user_credentials"]
|
241
|
-
end
|
242
|
-
end
|
243
|
-
end
|
244
|
-
end
|
File without changes
|
@@ -1,88 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
module ExistenceTest
|
7
|
-
class ClassMethodsTest < ActiveSupport::TestCase
|
8
|
-
def test_create_with_good_credentials
|
9
|
-
ben = users(:ben)
|
10
|
-
session = UserSession.create(login: ben.login, password: "benrocks")
|
11
|
-
refute session.new_session?
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_create_with_bad_credentials
|
15
|
-
session = UserSession.create(login: "somelogin", password: "badpw2")
|
16
|
-
assert session.new_session?
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_create_bang
|
20
|
-
ben = users(:ben)
|
21
|
-
err = assert_raise(Authlogic::Session::Existence::SessionInvalidError) do
|
22
|
-
UserSession.create!(login: ben.login, password: "badpw")
|
23
|
-
end
|
24
|
-
assert_includes err.message, "Password is not valid"
|
25
|
-
refute UserSession.create!(login: ben.login, password: "benrocks").new_session?
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
30
|
-
def test_new_session
|
31
|
-
session = UserSession.new
|
32
|
-
assert session.new_session?
|
33
|
-
|
34
|
-
set_session_for(users(:ben))
|
35
|
-
session = UserSession.find
|
36
|
-
refute session.new_session?
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_save_with_nothing
|
40
|
-
session = UserSession.new
|
41
|
-
refute session.save
|
42
|
-
assert session.new_session?
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_save_with_block
|
46
|
-
session = UserSession.new
|
47
|
-
block_result = session.save do |result|
|
48
|
-
refute result
|
49
|
-
end
|
50
|
-
refute block_result
|
51
|
-
assert session.new_session?
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_save_with_bang
|
55
|
-
session = UserSession.new
|
56
|
-
assert_raise(Authlogic::Session::Existence::SessionInvalidError) { session.save! }
|
57
|
-
|
58
|
-
session.unauthorized_record = users(:ben)
|
59
|
-
assert_nothing_raised { session.save! }
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_destroy
|
63
|
-
ben = users(:ben)
|
64
|
-
session = UserSession.new
|
65
|
-
refute session.valid?
|
66
|
-
refute session.errors.empty?
|
67
|
-
assert session.destroy
|
68
|
-
assert session.errors.empty?
|
69
|
-
session.unauthorized_record = ben
|
70
|
-
assert session.save
|
71
|
-
assert session.record
|
72
|
-
assert session.destroy
|
73
|
-
refute session.record
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
class SessionInvalidErrorTest < ActiveSupport::TestCase
|
78
|
-
def test_message
|
79
|
-
session = UserSession.new
|
80
|
-
assert !session.valid?
|
81
|
-
error = Authlogic::Session::Existence::SessionInvalidError.new(session)
|
82
|
-
message = "Your session is invalid and has the following errors: " +
|
83
|
-
session.errors.full_messages.to_sentence
|
84
|
-
assert_equal message, error.message
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
# We forbid the use of AC::Parameters, and we have a test to that effect, but we
|
6
|
-
# do not want a development dependency on `actionpack`, so we define it here.
|
7
|
-
module ActionController
|
8
|
-
class Parameters; end
|
9
|
-
end
|
10
|
-
|
11
|
-
module SessionTest
|
12
|
-
class FoundationTest < ActiveSupport::TestCase
|
13
|
-
def test_credentials_raise_if_not_a_hash
|
14
|
-
session = UserSession.new
|
15
|
-
e = assert_raises(TypeError) {
|
16
|
-
session.credentials = ActionController::Parameters.new
|
17
|
-
}
|
18
|
-
assert_equal(
|
19
|
-
::Authlogic::Session::Foundation::InstanceMethods::E_AC_PARAMETERS,
|
20
|
-
e.message
|
21
|
-
)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
class HttpAuthTest < ActiveSupport::TestCase
|
7
|
-
class ConfigTest < ActiveSupport::TestCase
|
8
|
-
def test_allow_http_basic_auth
|
9
|
-
UserSession.allow_http_basic_auth = false
|
10
|
-
assert_equal false, UserSession.allow_http_basic_auth
|
11
|
-
|
12
|
-
UserSession.allow_http_basic_auth true
|
13
|
-
assert_equal true, UserSession.allow_http_basic_auth
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_request_http_basic_auth
|
17
|
-
UserSession.request_http_basic_auth = true
|
18
|
-
assert_equal true, UserSession.request_http_basic_auth
|
19
|
-
|
20
|
-
UserSession.request_http_basic_auth = false
|
21
|
-
assert_equal false, UserSession.request_http_basic_auth
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_http_basic_auth_realm
|
25
|
-
assert_equal "Application", UserSession.http_basic_auth_realm
|
26
|
-
UserSession.http_basic_auth_realm = "TestRealm"
|
27
|
-
assert_equal "TestRealm", UserSession.http_basic_auth_realm
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
32
|
-
def test_persist_persist_by_http_auth
|
33
|
-
UserSession.allow_http_basic_auth = true
|
34
|
-
|
35
|
-
aaron = users(:aaron)
|
36
|
-
http_basic_auth_for do
|
37
|
-
refute UserSession.find
|
38
|
-
end
|
39
|
-
http_basic_auth_for(aaron) do
|
40
|
-
assert session = UserSession.find
|
41
|
-
assert_equal aaron, session.record
|
42
|
-
assert_equal aaron.login, session.login
|
43
|
-
assert_equal "aaronrocks", session.send(:protected_password)
|
44
|
-
refute controller.http_auth_requested?
|
45
|
-
end
|
46
|
-
unset_session
|
47
|
-
UserSession.request_http_basic_auth = true
|
48
|
-
UserSession.http_basic_auth_realm = "PersistTestRealm"
|
49
|
-
http_basic_auth_for(aaron) do
|
50
|
-
assert session = UserSession.find
|
51
|
-
assert_equal aaron, session.record
|
52
|
-
assert_equal aaron.login, session.login
|
53
|
-
assert_equal "aaronrocks", session.send(:protected_password)
|
54
|
-
assert_equal "PersistTestRealm", controller.realm
|
55
|
-
assert controller.http_auth_requested?
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
class IdTest < ActiveSupport::TestCase
|
7
|
-
def test_credentials
|
8
|
-
session = UserSession.new
|
9
|
-
session.credentials = [:my_id]
|
10
|
-
assert_equal :my_id, session.id
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_id
|
14
|
-
session = UserSession.new
|
15
|
-
session.id = :my_id
|
16
|
-
assert_equal :my_id, session.id
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
module KlassTest
|
7
|
-
class ConfigTest < ActiveSupport::TestCase
|
8
|
-
def test_authenticate_with
|
9
|
-
UserSession.authenticate_with = Employee
|
10
|
-
assert_equal "Employee", UserSession.klass_name
|
11
|
-
assert_equal Employee, UserSession.klass
|
12
|
-
|
13
|
-
UserSession.authenticate_with User
|
14
|
-
assert_equal "User", UserSession.klass_name
|
15
|
-
assert_equal User, UserSession.klass
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_klass
|
19
|
-
assert_equal User, UserSession.klass
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_klass_name
|
23
|
-
assert_equal "User", UserSession.klass_name
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_klass_name_uses_custom_name
|
27
|
-
assert_equal "User", UserSession.klass_name
|
28
|
-
assert_equal "BackOfficeUser", BackOfficeUserSession.klass_name
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
33
|
-
def test_record_method
|
34
|
-
ben = users(:ben)
|
35
|
-
set_session_for(ben)
|
36
|
-
session = UserSession.find
|
37
|
-
assert_equal ben, session.record
|
38
|
-
assert_equal ben, session.user
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
module MagicColumnsTest
|
7
|
-
class ConfigTest < ActiveSupport::TestCase
|
8
|
-
def test_last_request_at_threshold_config
|
9
|
-
UserSession.last_request_at_threshold = 2.minutes
|
10
|
-
assert_equal 2.minutes, UserSession.last_request_at_threshold
|
11
|
-
|
12
|
-
UserSession.last_request_at_threshold 0
|
13
|
-
assert_equal 0, UserSession.last_request_at_threshold
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
18
|
-
def test_after_persisting_set_last_request_at
|
19
|
-
ben = users(:ben)
|
20
|
-
refute UserSession.create(ben).new_session?
|
21
|
-
|
22
|
-
set_cookie_for(ben)
|
23
|
-
old_last_request_at = ben.last_request_at
|
24
|
-
assert UserSession.find
|
25
|
-
ben.reload
|
26
|
-
assert ben.last_request_at != old_last_request_at
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_valid_increase_failed_login_count
|
30
|
-
ben = users(:ben)
|
31
|
-
old_failed_login_count = ben.failed_login_count
|
32
|
-
session = UserSession.create(login: ben.login, password: "wrong")
|
33
|
-
assert session.new_session?
|
34
|
-
ben.reload
|
35
|
-
assert_equal old_failed_login_count + 1, ben.failed_login_count
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_before_save_update_info
|
39
|
-
aaron = users(:aaron)
|
40
|
-
|
41
|
-
# increase failed login count
|
42
|
-
session = UserSession.create(login: aaron.login, password: "wrong")
|
43
|
-
assert session.new_session?
|
44
|
-
aaron.reload
|
45
|
-
assert_equal 0, aaron.login_count
|
46
|
-
assert_nil aaron.current_login_at
|
47
|
-
assert_nil aaron.current_login_ip
|
48
|
-
|
49
|
-
session = UserSession.create(login: aaron.login, password: "aaronrocks")
|
50
|
-
assert session.valid?
|
51
|
-
|
52
|
-
aaron.reload
|
53
|
-
assert_equal 1, aaron.login_count
|
54
|
-
assert_equal 0, aaron.failed_login_count
|
55
|
-
assert_nil aaron.last_login_at
|
56
|
-
assert_not_nil aaron.current_login_at
|
57
|
-
assert_nil aaron.last_login_ip
|
58
|
-
assert_equal "1.1.1.1", aaron.current_login_ip
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
|
5
|
-
module SessionTest
|
6
|
-
module SessionTest
|
7
|
-
class ConfigTest < ActiveSupport::TestCase
|
8
|
-
def test_disable_magic_states_config
|
9
|
-
UserSession.disable_magic_states = true
|
10
|
-
assert_equal true, UserSession.disable_magic_states
|
11
|
-
|
12
|
-
UserSession.disable_magic_states false
|
13
|
-
assert_equal false, UserSession.disable_magic_states
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class InstanceMethodsTest < ActiveSupport::TestCase
|
18
|
-
def test_disabling_magic_states
|
19
|
-
UserSession.disable_magic_states = true
|
20
|
-
ben = users(:ben)
|
21
|
-
ben.update_attribute(:active, false)
|
22
|
-
refute UserSession.create(ben).new_session?
|
23
|
-
UserSession.disable_magic_states = false
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_validate_validate_magic_states_active
|
27
|
-
session = UserSession.new
|
28
|
-
ben = users(:ben)
|
29
|
-
session.unauthorized_record = ben
|
30
|
-
assert session.valid?
|
31
|
-
|
32
|
-
ben.update_attribute(:active, false)
|
33
|
-
refute session.valid?
|
34
|
-
refute session.errors[:base].empty?
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_validate_validate_magic_states_approved
|
38
|
-
session = UserSession.new
|
39
|
-
ben = users(:ben)
|
40
|
-
session.unauthorized_record = ben
|
41
|
-
assert session.valid?
|
42
|
-
|
43
|
-
ben.update_attribute(:approved, false)
|
44
|
-
refute session.valid?
|
45
|
-
refute session.errors[:base].empty?
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_validate_validate_magic_states_confirmed
|
49
|
-
session = UserSession.new
|
50
|
-
ben = users(:ben)
|
51
|
-
session.unauthorized_record = ben
|
52
|
-
assert session.valid?
|
53
|
-
|
54
|
-
ben.update_attribute(:confirmed, false)
|
55
|
-
refute session.valid?
|
56
|
-
refute session.errors[:base].empty?
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|