module SimpleAuth # Add a shortcut to SimpleAuth::Config def self.setup(&block) yield SimpleAuth::Config if block_given? end class Config # Automatically remove all session values that start with your model name. # # When an existing session is destroyed or a new session is created, # SimpleAuth will remove the record id stored as #{SimpleAuth::Config.model}. # # Additionally, you can enable this option to remove any other key composed by # #{SimpleAuth::Config.model}_*. # cattr_accessor :wipeout_session @@wipeout_session = false # Generate the password hash. The specified block should expected # the plain password and the password hash as block parameters. cattr_accessor :crypter @@crypter = proc do |password, salt| Digest::SHA256.hexdigest [password, salt].join("--") end # Generate the password salt. The specified block should expect # the ActiveRecord instance as block parameter. cattr_accessor :salt @@salt = proc do |record| Digest::SHA256.hexdigest [Time.to_s, ActiveSupport::SecureRandom.hex(32)].join("--") end # Set which attributes will be used for authentication. cattr_accessor :credentials @@credentials = [:email, :login] # Set the user model cattr_accessor :model @@model = :user # Set the current controller object cattr_accessor :controller @@controller = nil # Set the login url cattr_accessor :login_url @@login_url = proc { login_path } # Logged users will be redirect to this url # when +redirect_logged_user+ helper is used. cattr_accessor :logged_url @@logged_url = proc { dashboard_path } def self.reset_session(*args) # :nodoc: Kernel.warn "The SimpleAuth::Config.reset_session accessor was disabled and will be removed in future versions." end class << self; alias reset_session= reset_session; end def self.model_class model.to_s.classify.constantize end end end