authlogic 4.4.2 → 5.0.0

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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/lib/authlogic/acts_as_authentic/base.rb +3 -18
  3. data/lib/authlogic/acts_as_authentic/email.rb +3 -170
  4. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +3 -1
  5. data/lib/authlogic/acts_as_authentic/login.rb +7 -174
  6. data/lib/authlogic/acts_as_authentic/magic_columns.rb +7 -4
  7. data/lib/authlogic/acts_as_authentic/password.rb +54 -253
  8. data/lib/authlogic/acts_as_authentic/perishable_token.rb +7 -5
  9. data/lib/authlogic/acts_as_authentic/persistence_token.rb +9 -4
  10. data/lib/authlogic/acts_as_authentic/queries/case_sensitivity.rb +53 -0
  11. data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +17 -22
  12. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +8 -6
  13. data/lib/authlogic/acts_as_authentic/single_access_token.rb +9 -8
  14. data/lib/authlogic/config.rb +9 -1
  15. data/lib/authlogic/controller_adapters/abstract_adapter.rb +7 -4
  16. data/lib/authlogic/controller_adapters/rack_adapter.rb +2 -0
  17. data/lib/authlogic/controller_adapters/rails_adapter.rb +17 -14
  18. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +6 -0
  19. data/lib/authlogic/crypto_providers/bcrypt.rb +3 -3
  20. data/lib/authlogic/crypto_providers/md5.rb +3 -6
  21. data/lib/authlogic/crypto_providers/scrypt.rb +2 -0
  22. data/lib/authlogic/crypto_providers/sha1.rb +4 -6
  23. data/lib/authlogic/crypto_providers/sha256.rb +2 -0
  24. data/lib/authlogic/crypto_providers/sha512.rb +6 -5
  25. data/lib/authlogic/crypto_providers.rb +5 -20
  26. data/lib/authlogic/i18n/translator.rb +3 -0
  27. data/lib/authlogic/i18n.rb +3 -1
  28. data/lib/authlogic/random.rb +2 -0
  29. data/lib/authlogic/session/base.rb +2089 -39
  30. data/lib/authlogic/session/magic_column/assigns_last_request_at.rb +46 -0
  31. data/lib/authlogic/test_case/mock_controller.rb +2 -0
  32. data/lib/authlogic/test_case/mock_cookie_jar.rb +7 -0
  33. data/lib/authlogic/test_case/mock_logger.rb +2 -0
  34. data/lib/authlogic/test_case/mock_request.rb +2 -0
  35. data/lib/authlogic/test_case/rails_request_adapter.rb +2 -0
  36. data/lib/authlogic/test_case.rb +4 -0
  37. data/lib/authlogic/version.rb +2 -1
  38. data/lib/authlogic.rb +3 -28
  39. metadata +36 -180
  40. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -28
  41. data/.github/ISSUE_TEMPLATE/feature_proposal.md +0 -32
  42. data/.github/triage.md +0 -86
  43. data/.gitignore +0 -15
  44. data/.rubocop.yml +0 -133
  45. data/.rubocop_todo.yml +0 -74
  46. data/.travis.yml +0 -24
  47. data/CHANGELOG.md +0 -326
  48. data/CONTRIBUTING.md +0 -91
  49. data/Gemfile +0 -6
  50. data/LICENSE +0 -20
  51. data/README.md +0 -439
  52. data/Rakefile +0 -21
  53. data/UPGRADING.md +0 -22
  54. data/authlogic.gemspec +0 -40
  55. data/doc/use_normal_rails_validation.md +0 -82
  56. data/gemfiles/Gemfile.rails-4.2.x +0 -6
  57. data/gemfiles/Gemfile.rails-5.1.x +0 -6
  58. data/gemfiles/Gemfile.rails-5.2.x +0 -6
  59. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +0 -106
  60. data/lib/authlogic/acts_as_authentic/validations_scope.rb +0 -35
  61. data/lib/authlogic/authenticates_many/association.rb +0 -50
  62. data/lib/authlogic/authenticates_many/base.rb +0 -81
  63. data/lib/authlogic/crypto_providers/aes256.rb +0 -71
  64. data/lib/authlogic/crypto_providers/wordpress.rb +0 -72
  65. data/lib/authlogic/regex.rb +0 -79
  66. data/lib/authlogic/session/activation.rb +0 -73
  67. data/lib/authlogic/session/active_record_trickery.rb +0 -65
  68. data/lib/authlogic/session/brute_force_protection.rb +0 -127
  69. data/lib/authlogic/session/callbacks.rb +0 -153
  70. data/lib/authlogic/session/cookies.rb +0 -296
  71. data/lib/authlogic/session/existence.rb +0 -103
  72. data/lib/authlogic/session/foundation.rb +0 -105
  73. data/lib/authlogic/session/http_auth.rb +0 -107
  74. data/lib/authlogic/session/id.rb +0 -53
  75. data/lib/authlogic/session/klass.rb +0 -73
  76. data/lib/authlogic/session/magic_columns.rb +0 -119
  77. data/lib/authlogic/session/magic_states.rb +0 -82
  78. data/lib/authlogic/session/params.rb +0 -130
  79. data/lib/authlogic/session/password.rb +0 -318
  80. data/lib/authlogic/session/perishable_token.rb +0 -24
  81. data/lib/authlogic/session/persistence.rb +0 -77
  82. data/lib/authlogic/session/priority_record.rb +0 -38
  83. data/lib/authlogic/session/scopes.rb +0 -138
  84. data/lib/authlogic/session/session.rb +0 -77
  85. data/lib/authlogic/session/timeout.rb +0 -103
  86. data/lib/authlogic/session/unauthorized_record.rb +0 -56
  87. data/lib/authlogic/session/validation.rb +0 -93
  88. data/test/acts_as_authentic_test/base_test.rb +0 -27
  89. data/test/acts_as_authentic_test/email_test.rb +0 -241
  90. data/test/acts_as_authentic_test/logged_in_status_test.rb +0 -64
  91. data/test/acts_as_authentic_test/login_test.rb +0 -153
  92. data/test/acts_as_authentic_test/magic_columns_test.rb +0 -29
  93. data/test/acts_as_authentic_test/password_test.rb +0 -263
  94. data/test/acts_as_authentic_test/perishable_token_test.rb +0 -98
  95. data/test/acts_as_authentic_test/persistence_token_test.rb +0 -62
  96. data/test/acts_as_authentic_test/restful_authentication_test.rb +0 -48
  97. data/test/acts_as_authentic_test/session_maintenance_test.rb +0 -150
  98. data/test/acts_as_authentic_test/single_access_test.rb +0 -46
  99. data/test/adapter_test.rb +0 -23
  100. data/test/authenticates_many_test.rb +0 -33
  101. data/test/config_test.rb +0 -38
  102. data/test/crypto_provider_test/aes256_test.rb +0 -16
  103. data/test/crypto_provider_test/bcrypt_test.rb +0 -16
  104. data/test/crypto_provider_test/scrypt_test.rb +0 -16
  105. data/test/crypto_provider_test/sha1_test.rb +0 -25
  106. data/test/crypto_provider_test/sha256_test.rb +0 -16
  107. data/test/crypto_provider_test/sha512_test.rb +0 -16
  108. data/test/crypto_provider_test/wordpress_test.rb +0 -26
  109. data/test/fixtures/companies.yml +0 -5
  110. data/test/fixtures/employees.yml +0 -17
  111. data/test/fixtures/projects.yml +0 -3
  112. data/test/fixtures/users.yml +0 -41
  113. data/test/i18n/lol.yml +0 -4
  114. data/test/i18n_test.rb +0 -35
  115. data/test/libs/affiliate.rb +0 -9
  116. data/test/libs/company.rb +0 -8
  117. data/test/libs/employee.rb +0 -9
  118. data/test/libs/employee_session.rb +0 -4
  119. data/test/libs/ldaper.rb +0 -5
  120. data/test/libs/project.rb +0 -5
  121. data/test/libs/user.rb +0 -9
  122. data/test/libs/user_session.rb +0 -27
  123. data/test/random_test.rb +0 -15
  124. data/test/session_test/activation_test.rb +0 -45
  125. data/test/session_test/active_record_trickery_test.rb +0 -78
  126. data/test/session_test/brute_force_protection_test.rb +0 -110
  127. data/test/session_test/callbacks_test.rb +0 -42
  128. data/test/session_test/cookies_test.rb +0 -226
  129. data/test/session_test/credentials_test.rb +0 -0
  130. data/test/session_test/existence_test.rb +0 -88
  131. data/test/session_test/foundation_test.rb +0 -24
  132. data/test/session_test/http_auth_test.rb +0 -60
  133. data/test/session_test/id_test.rb +0 -19
  134. data/test/session_test/klass_test.rb +0 -42
  135. data/test/session_test/magic_columns_test.rb +0 -62
  136. data/test/session_test/magic_states_test.rb +0 -60
  137. data/test/session_test/params_test.rb +0 -61
  138. data/test/session_test/password_test.rb +0 -107
  139. data/test/session_test/perishability_test.rb +0 -17
  140. data/test/session_test/persistence_test.rb +0 -35
  141. data/test/session_test/scopes_test.rb +0 -68
  142. data/test/session_test/session_test.rb +0 -80
  143. data/test/session_test/timeout_test.rb +0 -84
  144. data/test/session_test/unauthorized_record_test.rb +0 -15
  145. data/test/session_test/validation_test.rb +0 -25
  146. data/test/test_helper.rb +0 -272
@@ -1,150 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module ActsAsAuthenticTest
6
- class SessionMaintenanceTest < ActiveSupport::TestCase
7
- def setup
8
- User.log_in_after_create = true
9
- User.log_in_after_password_change = true
10
- end
11
-
12
- def test_log_in_after_create_config
13
- assert User.log_in_after_create
14
- User.log_in_after_create = false
15
- refute User.log_in_after_create
16
- User.log_in_after_create = true
17
- assert User.log_in_after_create
18
- end
19
-
20
- def test_log_in_after_password_change_config
21
- assert User.log_in_after_password_change
22
- User.log_in_after_password_change = false
23
- refute User.log_in_after_password_change
24
- User.log_in_after_password_change = true
25
- assert User.log_in_after_password_change
26
- end
27
-
28
- def test_login_after_create
29
- User.log_in_after_create = true
30
- user = User.create(
31
- login: "awesome",
32
- password: "saweeeet",
33
- password_confirmation: "saweeeet",
34
- email: "awesome@awesome.com"
35
- )
36
- assert user.persisted?
37
- assert UserSession.find
38
- logged_in_user = UserSession.find.user
39
- assert_equal logged_in_user, user
40
- end
41
-
42
- def test_no_login_after_create
43
- old_user = User.create(
44
- login: "awesome",
45
- password: "saweeeet",
46
- password_confirmation: "saweeeet",
47
- email: "awesome@awesome.com"
48
- )
49
- User.log_in_after_create = false
50
- user2 = User.create(
51
- login: "awesome2",
52
- password: "saweeeet2",
53
- password_confirmation: "saweeeet2",
54
- email: "awesome2@awesome.com"
55
- )
56
- assert user2.persisted?
57
- logged_in_user = UserSession.find.user
58
- assert_not_equal logged_in_user, user2
59
- assert_equal logged_in_user, old_user
60
- end
61
-
62
- def test_updating_session_with_failed_magic_state
63
- ben = users(:ben)
64
- ben.confirmed = false
65
- ben.password = "newpasswd"
66
- ben.password_confirmation = "newpasswd"
67
- assert ben.save
68
- end
69
-
70
- def test_update_session_after_password_modify
71
- User.log_in_after_password_change = true
72
- ben = users(:ben)
73
- UserSession.create(ben)
74
- old_session_key = controller.session["user_credentials"]
75
- old_cookie_key = controller.cookies["user_credentials"]
76
- ben.password = "newpasswd"
77
- ben.password_confirmation = "newpasswd"
78
- assert ben.save
79
- assert controller.session["user_credentials"]
80
- assert controller.cookies["user_credentials"]
81
- assert_not_equal controller.session["user_credentials"], old_session_key
82
- assert_not_equal controller.cookies["user_credentials"], old_cookie_key
83
- end
84
-
85
- def test_no_update_session_after_password_modify
86
- User.log_in_after_password_change = false
87
- ben = users(:ben)
88
- UserSession.create(ben)
89
- old_session_key = controller.session["user_credentials"]
90
- old_cookie_key = controller.cookies["user_credentials"]
91
- ben.password = "newpasswd"
92
- ben.password_confirmation = "newpasswd"
93
- assert ben.save
94
- assert controller.session["user_credentials"]
95
- assert controller.cookies["user_credentials"]
96
- assert_equal controller.session["user_credentials"], old_session_key
97
- assert_equal controller.cookies["user_credentials"], old_cookie_key
98
- end
99
-
100
- def test_no_session_update_after_modify
101
- ben = users(:ben)
102
- UserSession.create(ben)
103
- old_session_key = controller.session["user_credentials"]
104
- old_cookie_key = controller.cookies["user_credentials"]
105
- ben.first_name = "Ben"
106
- assert ben.save
107
- assert_equal controller.session["user_credentials"], old_session_key
108
- assert_equal controller.cookies["user_credentials"], old_cookie_key
109
- end
110
-
111
- def test_creating_other_user
112
- ben = users(:ben)
113
- UserSession.create(ben)
114
- old_session_key = controller.session["user_credentials"]
115
- old_cookie_key = controller.cookies["user_credentials"]
116
- user = User.create(
117
- login: "awesome",
118
- password: "saweet", # Password is too short, user invalid
119
- password_confirmation: "saweet",
120
- email: "awesome@saweet.com"
121
- )
122
- refute user.persisted?
123
- assert_equal controller.session["user_credentials"], old_session_key
124
- assert_equal controller.cookies["user_credentials"], old_cookie_key
125
- end
126
-
127
- def test_updating_other_user
128
- ben = users(:ben)
129
- UserSession.create(ben)
130
- old_session_key = controller.session["user_credentials"]
131
- old_cookie_key = controller.cookies["user_credentials"]
132
- zack = users(:zack)
133
- zack.password = "newpasswd"
134
- zack.password_confirmation = "newpasswd"
135
- assert zack.save
136
- assert_equal controller.session["user_credentials"], old_session_key
137
- assert_equal controller.cookies["user_credentials"], old_cookie_key
138
- end
139
-
140
- def test_resetting_password_when_logged_out
141
- ben = users(:ben)
142
- refute UserSession.find
143
- ben.password = "newpasswd"
144
- ben.password_confirmation = "newpasswd"
145
- assert ben.save
146
- assert UserSession.find
147
- assert_equal ben, UserSession.find.record
148
- end
149
- end
150
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module ActsAsAuthenticTest
6
- class SingleAccessTest < ActiveSupport::TestCase
7
- def test_change_single_access_token_with_password_config
8
- refute User.change_single_access_token_with_password
9
- refute Employee.change_single_access_token_with_password
10
-
11
- User.change_single_access_token_with_password = true
12
- assert User.change_single_access_token_with_password
13
- User.change_single_access_token_with_password false
14
- refute User.change_single_access_token_with_password
15
- end
16
-
17
- def test_validates_uniqueness_of_single_access_token
18
- u = User.new
19
- u.single_access_token = users(:ben).single_access_token
20
- refute u.valid?
21
- refute u.errors[:single_access_token].empty?
22
- end
23
-
24
- def test_before_validation_reset_single_access_token
25
- u = User.new
26
- refute u.valid?
27
- assert_not_nil u.single_access_token
28
- end
29
-
30
- def test_after_password_set_reset_single_access_token
31
- User.change_single_access_token_with_password = true
32
-
33
- ben = users(:ben)
34
- old_single_access_token = ben.single_access_token
35
- ben.password = "new_pass"
36
- assert_not_equal old_single_access_token, ben.single_access_token
37
-
38
- User.change_single_access_token_with_password = false
39
- end
40
-
41
- def test_after_password_set_is_not_called
42
- ldaper = Ldaper.new
43
- assert ldaper.save
44
- end
45
- end
46
- end
data/test/adapter_test.rb DELETED
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module Authlogic
6
- module ControllerAdapters
7
- class AbstractAdapterTest < ActiveSupport::TestCase
8
- def test_controller
9
- controller = Class.new(MockController) do
10
- def controller.an_arbitrary_method
11
- "bar"
12
- end
13
- end.new
14
- adapter = Authlogic::ControllerAdapters::AbstractAdapter.new(controller)
15
-
16
- assert_equal controller, adapter.controller
17
- assert controller.params.equal?(adapter.params)
18
- assert adapter.respond_to?(:an_arbitrary_method)
19
- assert_equal "bar", adapter.an_arbitrary_method
20
- end
21
- end
22
- end
23
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class AuthenticatesManyTest < ActiveSupport::TestCase
6
- def test_employee_sessions
7
- binary_logic = companies(:binary_logic)
8
-
9
- # Drew is a binary_logic employee, authentication succeeds
10
- drew = employees(:drew)
11
- set_session_for(drew)
12
- assert binary_logic.employee_sessions.find
13
-
14
- # Jennifer is not a binary_logic employee, authentication fails
15
- jennifer = employees(:jennifer)
16
- set_session_for(jennifer)
17
- refute binary_logic.employee_sessions.find
18
- end
19
-
20
- def test_user_sessions
21
- binary_logic = companies(:binary_logic)
22
-
23
- # Ben is a binary_logic user, authentication succeeds
24
- ben = users(:ben)
25
- set_session_for(ben, binary_logic)
26
- assert binary_logic.user_sessions.find
27
-
28
- # Zack is not a binary_logic user, authentication fails
29
- zack = users(:zack)
30
- set_session_for(zack, binary_logic)
31
- refute binary_logic.user_sessions.find
32
- end
33
- end
data/test/config_test.rb DELETED
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class ConfigTest < ActiveSupport::TestCase
6
- def setup
7
- @klass = Class.new {
8
- extend Authlogic::Config
9
-
10
- def self.foobar(value = nil)
11
- rw_config(:foobar_field, value, "default_foobar")
12
- end
13
- }
14
-
15
- @subklass = Class.new(@klass)
16
- end
17
-
18
- def test_config
19
- assert_equal({}, @klass.acts_as_authentic_config)
20
- end
21
-
22
- def test_rw_config_read_with_default
23
- assert "default_foobar", @klass.foobar
24
- end
25
-
26
- def test_rw_config_write
27
- assert_equal "my_foobar", @klass.foobar("my_foobar")
28
- assert_equal "my_foobar", @klass.foobar
29
-
30
- assert_equal "my_new_foobar", @klass.foobar("my_new_foobar")
31
- assert_equal "my_new_foobar", @klass.foobar
32
- end
33
-
34
- def test_subclass_rw_config_write
35
- assert_equal "subklass_foobar", @subklass.foobar("subklass_foobar")
36
- assert_equal "default_foobar", @klass.foobar
37
- end
38
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class AES256Test < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::AES256.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::AES256.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::AES256.matches?(hash, "mypass")
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class BCryptTest < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::BCrypt.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::BCrypt.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::BCrypt.matches?(hash, "mypass")
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class SCryptTest < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::SCrypt.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::SCrypt.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::SCrypt.matches?(hash, "mypass")
14
- end
15
- end
16
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class Sha1Test < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::Sha1.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::Sha1.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::Sha1.matches?(hash, "mypass")
14
- end
15
-
16
- def test_old_restful_authentication_passwords
17
- password = "test"
18
- salt = "7e3041ebc2fc05a40c60028e2c4901a81035d3cd"
19
- digest = "00742970dc9e6319f8019fd54864d3ea740f04b1"
20
- Authlogic::CryptoProviders::Sha1.stretches = 1
21
- assert Authlogic::CryptoProviders::Sha1.matches?(digest, nil, salt, password, nil)
22
- Authlogic::CryptoProviders::Sha1.stretches = 10
23
- end
24
- end
25
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class Sha256Test < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::Sha256.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::Sha256.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::Sha256.matches?(hash, "mypass")
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module CryptoProviderTest
6
- class Sha512Test < ActiveSupport::TestCase
7
- def test_encrypt
8
- assert Authlogic::CryptoProviders::Sha512.encrypt("mypass")
9
- end
10
-
11
- def test_matches
12
- hash = Authlogic::CryptoProviders::Sha512.encrypt("mypass")
13
- assert Authlogic::CryptoProviders::Sha512.matches?(hash, "mypass")
14
- end
15
- end
16
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- ::ActiveSupport::Deprecation.silence do
6
- require "authlogic/crypto_providers/wordpress"
7
- end
8
-
9
- module CryptoProviderTest
10
- class WordpressTest < ActiveSupport::TestCase
11
- def test_matches
12
- plain = "banana"
13
- salt = "aaa"
14
- crypted = "xxx0nope"
15
- # I couldn't figure out how to even execute this method without it
16
- # crashing. Maybe, when Jeffry wrote it in 2009, `Digest::MD5.digest`
17
- # worked differently. He was probably using ruby 1.9 back then.
18
- # Given that I can't even figure out how to run it, and for all the other
19
- # reasons I've given in `wordpress.rb`, I'm just going to deprecate
20
- # the whole file. -Jared 2018-04-09
21
- assert_raises(NoMethodError) {
22
- Authlogic::CryptoProviders::Wordpress.matches?(crypted, plain, salt)
23
- }
24
- end
25
- end
26
- end
@@ -1,5 +0,0 @@
1
- binary_logic:
2
- name: Binary Logic
3
-
4
- logic_over_data:
5
- name: Logic Over Data
@@ -1,17 +0,0 @@
1
- drew:
2
- company: binary_logic
3
- email: dgainor@binarylogic.com
4
- password_salt: <%= salt = Authlogic::Random.hex_token %>
5
- crypted_password: '<%= Employee.crypto_provider.encrypt("drewrocks" + salt) %>'
6
- persistence_token: 5273d85ed156e9dbd6a7c1438d319ef8c8d41dd24368db6c222de11346c7b11e53ee08d45ecf619b1c1dc91233d22b372482b751b066d0a6f6f9bac42eacaabf
7
- first_name: Drew
8
- last_name: Gainor
9
-
10
- jennifer:
11
- company: logic_over_data
12
- email: jjohnson@logicoverdata.com
13
- password_salt: <%= salt = Authlogic::Random.hex_token %>
14
- crypted_password: '<%= Employee.crypto_provider.encrypt("jenniferocks" + salt) %>'
15
- persistence_token: 2be52a8f741ad00056e6f94eb6844d5316527206da7a3a5e3d0e14d19499ef9fe4c47c89b87febb59a2b41a69edfb4733b6b79302040f3de83f297c6991c75a2
16
- first_name: Jennifer
17
- last_name: Johnson
@@ -1,3 +0,0 @@
1
- web_services:
2
- name: web services
3
- users: ben, zack
@@ -1,41 +0,0 @@
1
- # NB :ben and :zack use the legacy crypto provider (Sha512) ... when they're
2
- # tested for valid_password?() it will transition their password
3
- # (re: test/libs/user.rb). This could have unintended side-effects (like auto-
4
- # resetting their persistence token when checking password) -- one solution
5
- # is to just switch in users(:aaron) for those tests.
6
- ben:
7
- company: binary_logic
8
- projects: web_services
9
- login: bjohnson
10
- password_salt: <%= salt = Authlogic::Random.hex_token %>
11
- crypted_password: <%= Authlogic::CryptoProviders::Sha512.encrypt("benrocks" + salt) %>
12
- persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
13
- single_access_token: <%= Authlogic::Random.friendly_token %>
14
- perishable_token: <%= Authlogic::Random.friendly_token %>
15
- email: bjohnson@binarylogic.com
16
- first_name: Ben
17
- last_name: Johnson
18
-
19
- zack:
20
- company: logic_over_data
21
- projects: web_services
22
- login: zackham
23
- password_salt: <%= salt = Authlogic::Random.hex_token %>
24
- crypted_password: <%= Authlogic::CryptoProviders::Sha512.encrypt("zackrocks" + salt) %>
25
- persistence_token: fd3c2d5ce09ab98e7547d21f1b3dcf9158a9a19b5d3022c0402f32ae197019fce3fdbc6614d7ee57d719bae53bb089e30edc9e5d6153e5bc3afca0ac1d320342
26
- single_access_token: <%= Authlogic::Random.friendly_token %>
27
- email: zham@ziggityzack.com
28
- first_name: Zack
29
- last_name: Ham
30
-
31
- aaron:
32
- company: cigital
33
- projects: web_services
34
- login: abedra
35
- crypted_password: <%= Authlogic::CryptoProviders::SCrypt.encrypt("aaronrocks") %>
36
- persistence_token: e3d853f5aa0dacac5c257d03c4e097a3a7f51b182a8fc4f62096d05e939b019855aff0290157ac854e4195f13284ff5223f1996d0fd073e7e360171de54db278
37
- single_access_token: <%= Authlogic::Random.friendly_token %>
38
- perishable_token: <%= Authlogic::Random.friendly_token %>
39
- email: abedra@cigital.com
40
- first_name: Aaron
41
- last_name: Bedra
data/test/i18n/lol.yml DELETED
@@ -1,4 +0,0 @@
1
- lol:
2
- authlogic:
3
- error_messages:
4
- email_invalid: LOL email should be valid.
data/test/i18n_test.rb DELETED
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class I18nTest < ActiveSupport::TestCase
6
- def test_uses_authlogic_as_scope_by_default
7
- assert_equal :authlogic, Authlogic::I18n.scope
8
- end
9
-
10
- def test_can_set_scope
11
- assert_nothing_raised { Authlogic::I18n.scope = %i[a b] }
12
- assert_equal %i[a b], Authlogic::I18n.scope
13
- Authlogic::I18n.scope = :authlogic
14
- end
15
-
16
- def test_uses_built_in_translator_by_default
17
- assert_equal Authlogic::I18n::Translator, Authlogic::I18n.translator.class
18
- end
19
-
20
- def test_can_set_custom_translator
21
- old_translator = Authlogic::I18n.translator
22
-
23
- assert_nothing_raised do
24
- Authlogic::I18n.translator = Class.new do
25
- def translate(key, _options = {})
26
- "Translated: #{key}"
27
- end
28
- end.new
29
- end
30
-
31
- assert_equal "Translated: x", Authlogic::I18n.translate(:x)
32
-
33
- Authlogic::I18n.translator = old_translator
34
- end
35
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Affiliate < ActiveRecord::Base
4
- acts_as_authentic do |c|
5
- c.crypted_password_field = :pw_hash
6
- end
7
-
8
- belongs_to :company
9
- end
data/test/libs/company.rb DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Company < ActiveRecord::Base
4
- authenticates_many :employee_sessions
5
- authenticates_many :user_sessions, scope_cookies: true
6
- has_many :employees, dependent: :destroy
7
- has_many :users, dependent: :destroy
8
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Employee < ActiveRecord::Base
4
- acts_as_authentic do |c|
5
- c.crypto_provider Authlogic::CryptoProviders::AES256
6
- end
7
-
8
- belongs_to :company
9
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class EmployeeSession < Authlogic::Session::Base
4
- end
data/test/libs/ldaper.rb DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Ldaper < ActiveRecord::Base
4
- acts_as_authentic
5
- end
data/test/libs/project.rb DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Project < ActiveRecord::Base
4
- has_and_belongs_to_many :users
5
- end
data/test/libs/user.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class User < ActiveRecord::Base
4
- acts_as_authentic do |c|
5
- c.transition_from_crypto_providers Authlogic::CryptoProviders::Sha512
6
- end
7
- belongs_to :company
8
- has_and_belongs_to_many :projects
9
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class UserSession < Authlogic::Session::Base
4
- end
5
-
6
- class BackOfficeUserSession < Authlogic::Session::Base
7
- end
8
-
9
- class WackyUserSession < Authlogic::Session::Base
10
- attr_accessor :counter
11
- authenticate_with User
12
-
13
- def initialize
14
- @counter = 0
15
- super
16
- end
17
-
18
- def persist_by_false
19
- self.counter += 1
20
- false
21
- end
22
-
23
- def persist_by_true
24
- self.counter += 1
25
- true
26
- end
27
- end
data/test/random_test.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class RandomTest < ActiveSupport::TestCase
6
- def test_that_hex_tokens_are_unique
7
- tokens = Array.new(100) { Authlogic::Random.hex_token }
8
- assert_equal tokens.size, tokens.uniq.size
9
- end
10
-
11
- def test_that_friendly_tokens_are_unique
12
- tokens = Array.new(100) { Authlogic::Random.friendly_token }
13
- assert_equal tokens.size, tokens.uniq.size
14
- end
15
- end