module Authlogic::ActsAsAuthentic::RestfulAuthentication::Config

Configures the restful_authentication aspect of acts_as_authentic. These methods become class methods of ::ActiveRecord::Base.

Constants

DPR_MSG

Public Instance Methods

act_like_restful_authentication(value = nil) click to toggle source

Switching an existing app to Authlogic from restful_authentication? No problem, just set this true and your users won't know anything changed. From your database perspective nothing will change at all. Authlogic will continue to encrypt passwords just like restful_authentication, so your app won't skip a beat. Although, might consider transitioning your users to a newer and stronger algorithm. Checkout the #transition_from_restful_authentication option.

  • Default: false

  • Accepts: Boolean

# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 35
def act_like_restful_authentication(value = nil)
  r = rw_config(:act_like_restful_authentication, value, false)
  set_restful_authentication_config if value
  r
end
act_like_restful_authentication=(value = nil) click to toggle source
# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 41
def act_like_restful_authentication=(value = nil)
  ::ActiveSupport::Deprecation.warn(
    format(DPR_MSG, "act_like_restful_authentication="),
    caller(1)
  )
  act_like_restful_authentication(value)
end
transition_from_restful_authentication(value = nil) click to toggle source

This works just like #act_like_restful_authentication except that it will start transitioning your users to the algorithm you specify with the crypto provider option. The next time they log in it will resave their password with the new algorithm and any new record will use the new algorithm as well. Make sure to update your users table if you are using the default migration since it will set crypted_password and salt columns to a maximum width of 40 characters which is not enough.

# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 56
def transition_from_restful_authentication(value = nil)
  r = rw_config(:transition_from_restful_authentication, value, false)
  set_restful_authentication_config if value
  r
end
transition_from_restful_authentication=(value = nil) click to toggle source
# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 62
def transition_from_restful_authentication=(value = nil)
  ::ActiveSupport::Deprecation.warn(
    format(DPR_MSG, "transition_from_restful_authentication="),
    caller(1)
  )
  transition_from_restful_authentication(value)
end

Private Instance Methods

restful_auth_crypto_provider=(provider) click to toggle source

@api private

# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 83
def restful_auth_crypto_provider=(provider)
  if act_like_restful_authentication
    self.crypto_provider = provider
  else
    self.transition_from_crypto_providers = provider
  end
end
set_restful_authentication_config() click to toggle source
# File lib/authlogic/acts_as_authentic/restful_authentication.rb, line 72
def set_restful_authentication_config
  self.restful_auth_crypto_provider = CryptoProviders::Sha1
  if !defined?(::REST_AUTH_SITE_KEY) || ::REST_AUTH_SITE_KEY.nil?
    unless defined?(::REST_AUTH_SITE_KEY)
      class_eval("::REST_AUTH_SITE_KEY = ''", __FILE__, __LINE__)
    end
    CryptoProviders::Sha1.stretches = 1
  end
end