module Authlogic::ActsAsAuthentic::Base::Config

The primary configuration of a model (often, `User`) for use with authlogic. These methods become class methods of ::ActiveRecord::Base.

Public Instance Methods

acts_as_authentic() { |self| ... } click to toggle source

This includes a lot of helpful methods for authenticating records which the Authlogic::Session module relies on. To use it just do:

class User < ApplicationRecord
  acts_as_authentic
end

Configuration is easy:

acts_as_authentic do |c|
  c.my_configuration_option = my_value
end

See the various sub modules for the configuration they provide.

# File lib/authlogic/acts_as_authentic/base.rb, line 33
def acts_as_authentic
  yield self if block_given?
  return unless db_setup?
  acts_as_authentic_modules.each { |mod| include mod }
end
add_acts_as_authentic_module(mod, action = :append) click to toggle source

Since this part of Authlogic deals with another class, ActiveRecord, we can't just start including things in ActiveRecord itself. A lot of these module includes need to be triggered by the acts_as_authentic method call. For example, you don't want to start adding in email validations and what not into a model that has nothing to do with Authlogic.

That being said, this is your tool for extending Authlogic and “hooking” into the acts_as_authentic call.

# File lib/authlogic/acts_as_authentic/base.rb, line 48
def add_acts_as_authentic_module(mod, action = :append)
  modules = acts_as_authentic_modules.clone
  case action
  when :append
    modules << mod
  when :prepend
    modules = [mod] + modules
  end
  modules.uniq!
  self.acts_as_authentic_modules = modules
end
raise_on_model_setup_error(value = nil) click to toggle source

Some Authlogic modules requires a database connection with a existing users table by the moment when you call the `acts_as_authentic` method. If you try to call `acts_as_authentic` without a database connection, it will raise a `Authlogic::ModelSetupError`.

If you rely on the User model before the database is setup correctly, set this field to false.

  • Default: false

  • Accepts: Boolean

# File lib/authlogic/acts_as_authentic/base.rb, line 77
def raise_on_model_setup_error(value = nil)
  rw_config(:raise_on_model_setup_error, value, false)
end
Also aliased as: raise_on_model_setup_error=
raise_on_model_setup_error=(value = nil)
remove_acts_as_authentic_module(mod) click to toggle source

This is the same as add_acts_as_authentic_module, except that it removes the module from the list.

# File lib/authlogic/acts_as_authentic/base.rb, line 62
def remove_acts_as_authentic_module(mod)
  modules = acts_as_authentic_modules.clone
  modules.delete(mod)
  self.acts_as_authentic_modules = modules
end

Private Instance Methods

db_setup?() click to toggle source
# File lib/authlogic/acts_as_authentic/base.rb, line 84
def db_setup?
  column_names
  true
rescue StandardError
  raise ModelSetupError if raise_on_model_setup_error
  false
end
first_column_to_exist(*columns_to_check) click to toggle source
# File lib/authlogic/acts_as_authentic/base.rb, line 92
def first_column_to_exist(*columns_to_check)
  if db_setup?
    columns_to_check.each do |column_name|
      if column_names.include?(column_name.to_s)
        return column_name.to_sym
      end
    end
  end
  columns_to_check.first&.to_sym
end