authlogic 4.0.1 → 4.1.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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +43 -1
  3. data/.rubocop_todo.yml +23 -132
  4. data/CHANGELOG.md +12 -0
  5. data/CONTRIBUTING.md +10 -3
  6. data/Gemfile +2 -2
  7. data/Rakefile +6 -6
  8. data/authlogic.gemspec +13 -12
  9. data/lib/authlogic/acts_as_authentic/base.rb +12 -7
  10. data/lib/authlogic/acts_as_authentic/email.rb +16 -6
  11. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +10 -5
  12. data/lib/authlogic/acts_as_authentic/login.rb +11 -5
  13. data/lib/authlogic/acts_as_authentic/password.rb +111 -57
  14. data/lib/authlogic/acts_as_authentic/perishable_token.rb +6 -2
  15. data/lib/authlogic/acts_as_authentic/persistence_token.rb +1 -1
  16. data/lib/authlogic/acts_as_authentic/queries/find_with_case.rb +2 -2
  17. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +31 -3
  18. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +11 -3
  19. data/lib/authlogic/acts_as_authentic/single_access_token.rb +14 -2
  20. data/lib/authlogic/acts_as_authentic/validations_scope.rb +6 -6
  21. data/lib/authlogic/authenticates_many/association.rb +2 -2
  22. data/lib/authlogic/authenticates_many/base.rb +27 -19
  23. data/lib/authlogic/controller_adapters/rack_adapter.rb +1 -1
  24. data/lib/authlogic/controller_adapters/rails_adapter.rb +6 -3
  25. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +2 -2
  26. data/lib/authlogic/crypto_providers.rb +2 -0
  27. data/lib/authlogic/crypto_providers/bcrypt.rb +15 -9
  28. data/lib/authlogic/crypto_providers/md5.rb +2 -1
  29. data/lib/authlogic/crypto_providers/scrypt.rb +12 -7
  30. data/lib/authlogic/crypto_providers/sha256.rb +2 -1
  31. data/lib/authlogic/crypto_providers/wordpress.rb +31 -2
  32. data/lib/authlogic/i18n.rb +22 -17
  33. data/lib/authlogic/regex.rb +57 -29
  34. data/lib/authlogic/session/activation.rb +1 -1
  35. data/lib/authlogic/session/brute_force_protection.rb +2 -2
  36. data/lib/authlogic/session/callbacks.rb +43 -36
  37. data/lib/authlogic/session/cookies.rb +4 -2
  38. data/lib/authlogic/session/existence.rb +1 -1
  39. data/lib/authlogic/session/foundation.rb +5 -1
  40. data/lib/authlogic/session/http_auth.rb +2 -2
  41. data/lib/authlogic/session/klass.rb +2 -1
  42. data/lib/authlogic/session/magic_columns.rb +4 -2
  43. data/lib/authlogic/session/magic_states.rb +9 -10
  44. data/lib/authlogic/session/params.rb +11 -4
  45. data/lib/authlogic/session/password.rb +72 -38
  46. data/lib/authlogic/session/perishable_token.rb +2 -1
  47. data/lib/authlogic/session/persistence.rb +2 -1
  48. data/lib/authlogic/session/scopes.rb +26 -16
  49. data/lib/authlogic/session/unauthorized_record.rb +12 -7
  50. data/lib/authlogic/session/validation.rb +1 -1
  51. data/lib/authlogic/test_case/mock_controller.rb +1 -1
  52. data/lib/authlogic/test_case/mock_cookie_jar.rb +1 -1
  53. data/lib/authlogic/test_case/mock_request.rb +1 -1
  54. data/lib/authlogic/version.rb +1 -1
  55. data/test/acts_as_authentic_test/base_test.rb +1 -1
  56. data/test/acts_as_authentic_test/email_test.rb +11 -11
  57. data/test/acts_as_authentic_test/logged_in_status_test.rb +4 -4
  58. data/test/acts_as_authentic_test/login_test.rb +2 -2
  59. data/test/acts_as_authentic_test/magic_columns_test.rb +1 -1
  60. data/test/acts_as_authentic_test/password_test.rb +1 -1
  61. data/test/acts_as_authentic_test/perishable_token_test.rb +2 -2
  62. data/test/acts_as_authentic_test/persistence_token_test.rb +1 -1
  63. data/test/acts_as_authentic_test/restful_authentication_test.rb +12 -3
  64. data/test/acts_as_authentic_test/session_maintenance_test.rb +1 -1
  65. data/test/acts_as_authentic_test/single_access_test.rb +1 -1
  66. data/test/adapter_test.rb +3 -3
  67. data/test/authenticates_many_test.rb +1 -1
  68. data/test/config_test.rb +9 -9
  69. data/test/crypto_provider_test/aes256_test.rb +1 -1
  70. data/test/crypto_provider_test/bcrypt_test.rb +1 -1
  71. data/test/crypto_provider_test/scrypt_test.rb +1 -1
  72. data/test/crypto_provider_test/sha1_test.rb +1 -1
  73. data/test/crypto_provider_test/sha256_test.rb +1 -1
  74. data/test/crypto_provider_test/sha512_test.rb +1 -1
  75. data/test/crypto_provider_test/wordpress_test.rb +24 -0
  76. data/test/i18n_test.rb +3 -3
  77. data/test/libs/user_session.rb +2 -2
  78. data/test/random_test.rb +1 -1
  79. data/test/session_test/activation_test.rb +1 -1
  80. data/test/session_test/active_record_trickery_test.rb +3 -3
  81. data/test/session_test/brute_force_protection_test.rb +1 -1
  82. data/test/session_test/callbacks_test.rb +9 -3
  83. data/test/session_test/cookies_test.rb +11 -11
  84. data/test/session_test/existence_test.rb +1 -1
  85. data/test/session_test/foundation_test.rb +1 -1
  86. data/test/session_test/http_auth_test.rb +6 -6
  87. data/test/session_test/id_test.rb +1 -1
  88. data/test/session_test/klass_test.rb +1 -1
  89. data/test/session_test/magic_columns_test.rb +1 -1
  90. data/test/session_test/magic_states_test.rb +1 -1
  91. data/test/session_test/params_test.rb +7 -4
  92. data/test/session_test/password_test.rb +1 -1
  93. data/test/session_test/perishability_test.rb +1 -1
  94. data/test/session_test/persistence_test.rb +1 -1
  95. data/test/session_test/scopes_test.rb +9 -3
  96. data/test/session_test/session_test.rb +2 -2
  97. data/test/session_test/timeout_test.rb +1 -1
  98. data/test/session_test/unauthorized_record_test.rb +1 -1
  99. data/test/session_test/validation_test.rb +1 -1
  100. data/test/test_helper.rb +34 -14
  101. metadata +6 -4
@@ -1,9 +1,10 @@
1
1
  module Authlogic
2
2
  module ActsAsAuthentic
3
- # Since web applications are stateless there is not sure fire way to tell if a user is logged in or not,
4
- # from the database perspective. The best way to do this is to provide a "timeout" based on inactivity.
5
- # So if that user is inactive for a certain amount of time we assume they are logged out. That's what this
6
- # module is all about.
3
+ # Since web applications are stateless there is not sure fire way to tell if
4
+ # a user is logged in or not, from the database perspective. The best way to
5
+ # do this is to provide a "timeout" based on inactivity. So if that user is
6
+ # inactive for a certain amount of time we assume they are logged out.
7
+ # That's what this module is all about.
7
8
  module LoggedInStatus
8
9
  def self.included(klass)
9
10
  klass.class_eval do
@@ -52,11 +53,15 @@ module Authlogic
52
53
  end
53
54
  end
54
55
 
56
+ # :nodoc:
55
57
  module InstanceMethods
56
58
  # Returns true if the last_request_at > logged_in_timeout.
57
59
  def logged_in?
58
60
  unless respond_to?(:last_request_at)
59
- raise "Can not determine the records login state because there is no last_request_at column"
61
+ raise(
62
+ "Can not determine the records login state because " \
63
+ "there is no last_request_at column"
64
+ )
60
65
  end
61
66
  !last_request_at.nil? && last_request_at > logged_in_timeout.seconds.ago
62
67
  end
@@ -1,4 +1,4 @@
1
- require 'authlogic/acts_as_authentic/queries/find_with_case'
1
+ require "authlogic/acts_as_authentic/queries/find_with_case"
2
2
 
3
3
  module Authlogic
4
4
  module ActsAsAuthentic
@@ -44,7 +44,10 @@ module Authlogic
44
44
  def validates_length_of_login_field_options(value = nil)
45
45
  rw_config(:validates_length_of_login_field_options, value, within: 3..100)
46
46
  end
47
- alias_method :validates_length_of_login_field_options=, :validates_length_of_login_field_options
47
+ alias_method(
48
+ :validates_length_of_login_field_options=,
49
+ :validates_length_of_login_field_options
50
+ )
48
51
 
49
52
  # A convenience function to merge options into the
50
53
  # validates_length_of_login_field_options. So instead of:
@@ -85,16 +88,19 @@ module Authlogic
85
88
  rw_config(
86
89
  :validates_format_of_login_field_options,
87
90
  value,
88
- with: Authlogic::Regex.login,
91
+ with: Authlogic::Regex::LOGIN,
89
92
  message: proc do
90
93
  I18n.t(
91
- 'error_messages.login_invalid',
94
+ "error_messages.login_invalid",
92
95
  default: "should use only letters, numbers, spaces, and .-_@+ please."
93
96
  )
94
97
  end
95
98
  )
96
99
  end
97
- alias_method :validates_format_of_login_field_options=, :validates_format_of_login_field_options
100
+ alias_method(
101
+ :validates_format_of_login_field_options=,
102
+ :validates_format_of_login_field_options
103
+ )
98
104
 
99
105
  # See merge_validates_length_of_login_field_options. The same thing,
100
106
  # except for validates_format_of_login_field_options
@@ -22,7 +22,13 @@ module Authlogic
22
22
  rw_config(
23
23
  :crypted_password_field,
24
24
  value,
25
- first_column_to_exist(nil, :crypted_password, :encrypted_password, :password_hash, :pw_hash)
25
+ first_column_to_exist(
26
+ nil,
27
+ :crypted_password,
28
+ :encrypted_password,
29
+ :password_hash,
30
+ :pw_hash
31
+ )
26
32
  )
27
33
  end
28
34
  alias_method :crypted_password_field=, :crypted_password_field
@@ -99,17 +105,25 @@ module Authlogic
99
105
  # A hash of options for the validates_length_of call for the password field.
100
106
  # Allows you to change this however you want.
101
107
  #
102
- # <b>Keep in mind this is ruby. I wanted to keep this as flexible as possible, so
103
- # you can completely replace the hash or merge options into it. Checkout the
104
- # convenience function merge_validates_length_of_password_field_options to merge
105
- # options.</b>
108
+ # **Keep in mind this is ruby. I wanted to keep this as flexible as
109
+ # possible, so you can completely replace the hash or merge options into
110
+ # it. Checkout the convenience function
111
+ # merge_validates_length_of_password_field_options to merge options.**
106
112
  #
107
113
  # * <tt>Default:</tt> {:minimum => 8, :if => :require_password?}
108
114
  # * <tt>Accepts:</tt> Hash of options accepted by validates_length_of
109
115
  def validates_length_of_password_field_options(value = nil)
110
- rw_config(:validates_length_of_password_field_options, value, minimum: 8, if: :require_password?)
116
+ rw_config(
117
+ :validates_length_of_password_field_options,
118
+ value,
119
+ minimum: 8,
120
+ if: :require_password?
121
+ )
111
122
  end
112
- alias_method :validates_length_of_password_field_options=, :validates_length_of_password_field_options
123
+ alias_method(
124
+ :validates_length_of_password_field_options=,
125
+ :validates_length_of_password_field_options
126
+ )
113
127
 
114
128
  # A convenience function to merge options into the
115
129
  # validates_length_of_login_field_options. So instead of:
@@ -125,18 +139,22 @@ module Authlogic
125
139
  validates_length_of_password_field_options.merge(options)
126
140
  end
127
141
 
128
- # A hash of options for the validates_confirmation_of call for the password field.
129
- # Allows you to change this however you want.
142
+ # A hash of options for the validates_confirmation_of call for the
143
+ # password field. Allows you to change this however you want.
130
144
  #
131
- # <b>Keep in mind this is ruby. I wanted to keep this as flexible as possible, so
132
- # you can completely replace the hash or merge options into it. Checkout the
133
- # convenience function merge_validates_length_of_password_field_options to merge
134
- # options.</b>
145
+ # **Keep in mind this is ruby. I wanted to keep this as flexible as
146
+ # possible, so you can completely replace the hash or merge options into
147
+ # it. Checkout the convenience function
148
+ # merge_validates_length_of_password_field_options to merge options.**
135
149
  #
136
150
  # * <tt>Default:</tt> {:if => :require_password?}
137
151
  # * <tt>Accepts:</tt> Hash of options accepted by validates_confirmation_of
138
152
  def validates_confirmation_of_password_field_options(value = nil)
139
- rw_config(:validates_confirmation_of_password_field_options, value, if: :require_password?)
153
+ rw_config(
154
+ :validates_confirmation_of_password_field_options,
155
+ value,
156
+ if: :require_password?
157
+ )
140
158
  end
141
159
  alias_method :validates_confirmation_of_password_field_options=,
142
160
  :validates_confirmation_of_password_field_options
@@ -188,31 +206,41 @@ module Authlogic
188
206
  end
189
207
  alias_method :crypto_provider=, :crypto_provider
190
208
 
191
- # Let's say you originally encrypted your passwords with Sha1. Sha1 is starting to
192
- # join the party with MD5 and you want to switch to something stronger. No
193
- # problem, just specify your new and improved algorithm with the crypt_provider
194
- # option and then let Authlogic know you are transitioning from Sha1 using this
195
- # option. Authlogic will take care of everything, including transitioning your
196
- # users to the new algorithm. The next time a user logs in, they will be granted
197
- # access using the old algorithm and their password will be resaved with the new
198
- # algorithm. All new users will obviously use the new algorithm as well.
209
+ # Let's say you originally encrypted your passwords with Sha1. Sha1 is
210
+ # starting to join the party with MD5 and you want to switch to
211
+ # something stronger. No problem, just specify your new and improved
212
+ # algorithm with the crypt_provider option and then let Authlogic know
213
+ # you are transitioning from Sha1 using this option. Authlogic will take
214
+ # care of everything, including transitioning your users to the new
215
+ # algorithm. The next time a user logs in, they will be granted access
216
+ # using the old algorithm and their password will be resaved with the
217
+ # new algorithm. All new users will obviously use the new algorithm as
218
+ # well.
199
219
  #
200
- # Lastly, if you want to transition again, you can pass an array of crypto
201
- # providers. So you can transition from as many algorithms as you want.
220
+ # Lastly, if you want to transition again, you can pass an array of
221
+ # crypto providers. So you can transition from as many algorithms as you
222
+ # want.
202
223
  #
203
224
  # * <tt>Default:</tt> nil
204
225
  # * <tt>Accepts:</tt> Class or Array
205
226
  def transition_from_crypto_providers(value = nil)
206
- rw_config(:transition_from_crypto_providers, (!value.nil? && [value].flatten.compact) || value, [])
227
+ rw_config(
228
+ :transition_from_crypto_providers,
229
+ (!value.nil? && [value].flatten.compact) || value,
230
+ []
231
+ )
207
232
  end
208
233
  alias_method :transition_from_crypto_providers=, :transition_from_crypto_providers
209
234
  end
210
235
 
211
236
  # Callbacks / hooks to allow other modules to modify the behavior of this module.
212
237
  module Callbacks
213
- METHODS = [
214
- "before_password_set", "after_password_set",
215
- "before_password_verification", "after_password_verification"
238
+ # Does the order of this array matter?
239
+ METHODS = %w[
240
+ before_password_set
241
+ after_password_set
242
+ before_password_verification
243
+ after_password_verification
216
244
  ].freeze
217
245
 
218
246
  def self.included(klass)
@@ -220,10 +248,9 @@ module Authlogic
220
248
  klass.define_callbacks(*METHODS)
221
249
 
222
250
  # If Rails 3, support the new callback syntax
223
- singleton_class_method_name = klass.respond_to?(:singleton_class) ? :singleton_class : :metaclass
224
- if klass.send(singleton_class_method_name).method_defined?(:set_callback)
251
+ if klass.singleton_class.method_defined?(:set_callback)
225
252
  METHODS.each do |method|
226
- klass.class_eval <<-EOS, __FILE__, __LINE__
253
+ klass.class_eval <<-EOS, __FILE__, __LINE__ + 1
227
254
  def self.#{method}(*methods, &block)
228
255
  set_callback :#{method}, *methods, &block
229
256
  end
@@ -237,7 +264,7 @@ module Authlogic
237
264
  # by using calling `private` here in the module. Maybe we can set the
238
265
  # privacy inside `included`?
239
266
  METHODS.each do |method|
240
- class_eval <<-EOS, __FILE__, __LINE__
267
+ class_eval <<-EOS, __FILE__, __LINE__ + 1
241
268
  def #{method}
242
269
  run_callbacks(:#{method}) { |result, object| result == false }
243
270
  end
@@ -272,6 +299,7 @@ module Authlogic
272
299
  end
273
300
  end
274
301
 
302
+ # :nodoc:
275
303
  module InstanceMethods
276
304
  # The password
277
305
  def password
@@ -284,40 +312,48 @@ module Authlogic
284
312
  return if ignore_blank_passwords? && pass.blank?
285
313
  before_password_set
286
314
  @password = pass
287
- send("#{password_salt_field}=", Authlogic::Random.friendly_token) if password_salt_field
288
- encryptor_arguments_type = act_like_restful_authentication? ? :restful_authentication : nil
315
+ if password_salt_field
316
+ send("#{password_salt_field}=", Authlogic::Random.friendly_token)
317
+ end
318
+ encryptor_args_type = act_like_restful_authentication? ? :restful_authentication : nil
289
319
  send(
290
320
  "#{crypted_password_field}=",
291
- crypto_provider.encrypt(*encrypt_arguments(@password, false, encryptor_arguments_type))
321
+ crypto_provider.encrypt(
322
+ *encrypt_arguments(@password, false, encryptor_args_type)
323
+ )
292
324
  )
293
325
  @password_changed = true
294
326
  after_password_set
295
327
  end
296
328
 
297
- # Accepts a raw password to determine if it is the correct password or not.
298
- # Notice the second argument. That defaults to the value of
299
- # check_passwords_against_database. See that method for more information, but
300
- # basically it just tells Authlogic to check the password against the value in
301
- # the database or the value in the object.
302
- def valid_password?(attempted_password, check_against_database = check_passwords_against_database?)
303
- crypted =
304
- if check_against_database && send("#{crypted_password_field}_changed?")
305
- send("#{crypted_password_field}_was")
306
- else
307
- send(crypted_password_field)
308
- end
309
-
329
+ # Accepts a raw password to determine if it is the correct password.
330
+ #
331
+ # - attempted_password [String] - password entered by user
332
+ # - check_against_database [boolean] - Should we check the password
333
+ # against the value in the database or the value in the object?
334
+ # Default taken from config option check_passwords_against_database.
335
+ # See config method for more information.
336
+ def valid_password?(
337
+ attempted_password,
338
+ check_against_database = check_passwords_against_database?
339
+ )
340
+ crypted = crypted_password_to_validate_against(check_against_database)
310
341
  return false if attempted_password.blank? || crypted.blank?
311
342
  before_password_verification
312
343
 
313
344
  crypto_providers.each_with_index do |encryptor, index|
314
- if encryptor_matches?(crypted, encryptor, index, attempted_password, check_against_database)
315
- if transition_password?(index, encryptor, check_against_database)
316
- transition_password(attempted_password)
317
- end
318
- after_password_verification
319
- return true
345
+ next unless encryptor_matches?(
346
+ crypted,
347
+ encryptor,
348
+ index,
349
+ attempted_password,
350
+ check_against_database
351
+ )
352
+ if transition_password?(index, encryptor, check_against_database)
353
+ transition_password(attempted_password)
320
354
  end
355
+ after_password_verification
356
+ return true
321
357
  end
322
358
 
323
359
  false
@@ -340,6 +376,14 @@ module Authlogic
340
376
 
341
377
  private
342
378
 
379
+ def crypted_password_to_validate_against(check_against_database)
380
+ if check_against_database && send("#{crypted_password_field}_changed?")
381
+ send("#{crypted_password_field}_was")
382
+ else
383
+ send(crypted_password_field)
384
+ end
385
+ end
386
+
343
387
  def check_passwords_against_database?
344
388
  self.class.check_passwords_against_database == true
345
389
  end
@@ -372,15 +416,25 @@ module Authlogic
372
416
  end
373
417
 
374
418
  # Given `encryptor`, does `attempted_password` match the `crypted` password?
375
- def encryptor_matches?(crypted, encryptor, index, attempted_password, check_against_database)
419
+ def encryptor_matches?(
420
+ crypted,
421
+ encryptor,
422
+ index,
423
+ attempted_password,
424
+ check_against_database
425
+ )
376
426
  # The arguments_type for the transitioning from restful_authentication
377
- acting_restful = act_like_restful_authentication? && index == 0
427
+ acting_restful = act_like_restful_authentication? && index.zero?
378
428
  transitioning = transition_from_restful_authentication? &&
379
429
  index > 0 &&
380
430
  encryptor == Authlogic::CryptoProviders::Sha1
381
431
  restful = acting_restful || transitioning
382
432
  arguments_type = restful ? :restful_authentication : nil
383
- encryptor_args = encrypt_arguments(attempted_password, check_against_database, arguments_type)
433
+ encryptor_args = encrypt_arguments(
434
+ attempted_password,
435
+ check_against_database,
436
+ arguments_type
437
+ )
384
438
  encryptor.matches?(crypted, *encryptor_args)
385
439
  end
386
440
 
@@ -27,7 +27,11 @@ module Authlogic
27
27
  # * <tt>Default:</tt> 10.minutes
28
28
  # * <tt>Accepts:</tt> Fixnum
29
29
  def perishable_token_valid_for(value = nil)
30
- rw_config(:perishable_token_valid_for, (!value.nil? && value.to_i) || value, 10.minutes.to_i)
30
+ rw_config(
31
+ :perishable_token_valid_for,
32
+ (!value.nil? && value.to_i) || value,
33
+ 10.minutes.to_i
34
+ )
31
35
  end
32
36
  alias_method :perishable_token_valid_for=, :perishable_token_valid_for
33
37
 
@@ -69,7 +73,7 @@ module Authlogic
69
73
  # second parameter:
70
74
  #
71
75
  # User.find_using_perishable_token(token, 1.hour)
72
- def find_using_perishable_token(token, age = self.perishable_token_valid_for)
76
+ def find_using_perishable_token(token, age = perishable_token_valid_for)
73
77
  return if token.blank?
74
78
  age = age.to_i
75
79
 
@@ -34,7 +34,7 @@ module Authlogic
34
34
  # all users to re-authenticate.
35
35
  def forget_all
36
36
  # Paginate these to save on memory
37
- find_each(batch_size: 50) { |record| record.forget! }
37
+ find_each(batch_size: 50, &:forget!)
38
38
  end
39
39
  end
40
40
 
@@ -28,7 +28,7 @@ module Authlogic
28
28
 
29
29
  # @api private
30
30
  def bind(relation)
31
- if AR_GEM_VERSION >= Gem::Version.new('5')
31
+ if AR_GEM_VERSION >= Gem::Version.new("5")
32
32
  bind = ActiveRecord::Relation::QueryAttribute.new(
33
33
  @field,
34
34
  @value,
@@ -49,7 +49,7 @@ module Authlogic
49
49
  @model_class.columns_hash[@field],
50
50
  @value
51
51
  )
52
- elsif AR_GEM_VERSION >= Gem::Version.new('5.0')
52
+ elsif AR_GEM_VERSION >= Gem::Version.new("5.0")
53
53
  @model_class.connection.case_sensitive_comparison(
54
54
  @model_class.arel_table,
55
55
  @field,
@@ -10,7 +10,18 @@ module Authlogic
10
10
  end
11
11
  end
12
12
 
13
+ # Configures the restful_authentication aspect of acts_as_authentic.
14
+ # These methods become class methods of ::ActiveRecord::Base.
13
15
  module Config
16
+ DPR_MSG = <<-STR.squish
17
+ Support for transitioning to authlogic from restful_authentication
18
+ (%s) is deprecated without replacement. restful_authentication is no
19
+ longer used in the ruby community, and the transition away from it is
20
+ complete. There is only one version of restful_authentication on
21
+ rubygems.org, it was released in 2009, and it's only compatible with
22
+ rails 2.3. It has been nine years since it was released.
23
+ STR
24
+
14
25
  # Switching an existing app to Authlogic from restful_authentication? No
15
26
  # problem, just set this true and your users won't know anything
16
27
  # changed. From your database perspective nothing will change at all.
@@ -26,7 +37,14 @@ module Authlogic
26
37
  set_restful_authentication_config if value
27
38
  r
28
39
  end
29
- alias_method :act_like_restful_authentication=, :act_like_restful_authentication
40
+
41
+ def act_like_restful_authentication=(value = nil)
42
+ ::ActiveSupport::Deprecation.warn(
43
+ format(DPR_MSG, "act_like_restful_authentication="),
44
+ caller(1)
45
+ )
46
+ act_like_restful_authentication(value)
47
+ end
30
48
 
31
49
  # This works just like act_like_restful_authentication except that it
32
50
  # will start transitioning your users to the algorithm you specify with
@@ -40,14 +58,23 @@ module Authlogic
40
58
  set_restful_authentication_config if value
41
59
  r
42
60
  end
43
- alias_method :transition_from_restful_authentication=, :transition_from_restful_authentication
61
+
62
+ def transition_from_restful_authentication=(value = nil)
63
+ ::ActiveSupport::Deprecation.warn(
64
+ format(DPR_MSG, "transition_from_restful_authentication="),
65
+ caller(1)
66
+ )
67
+ transition_from_restful_authentication(value)
68
+ end
44
69
 
45
70
  private
46
71
 
47
72
  def set_restful_authentication_config
48
73
  self.restful_auth_crypto_provider = CryptoProviders::Sha1
49
74
  if !defined?(::REST_AUTH_SITE_KEY) || ::REST_AUTH_SITE_KEY.nil?
50
- class_eval("::REST_AUTH_SITE_KEY = ''") unless defined?(::REST_AUTH_SITE_KEY)
75
+ unless defined?(::REST_AUTH_SITE_KEY)
76
+ class_eval("::REST_AUTH_SITE_KEY = ''", __FILE__, __LINE__)
77
+ end
51
78
  CryptoProviders::Sha1.stretches = 1
52
79
  end
53
80
  end
@@ -62,6 +89,7 @@ module Authlogic
62
89
  end
63
90
  end
64
91
 
92
+ # :nodoc:
65
93
  module InstanceMethods
66
94
  private
67
95