module Rodauth::Rails::Feature::Base

Public Class Methods

included(feature) click to toggle source
# File lib/rodauth/rails/feature/base.rb, line 5
def self.included(feature)
  feature.auth_methods :rails_controller
  feature.auth_cached_method :rails_controller_instance
end

Public Instance Methods

clear_session() click to toggle source

Reset Rails session to protect from session fixation attacks.

# File lib/rodauth/rails/feature/base.rb, line 11
def clear_session
  rails_controller_instance.reset_session
end
flash_error_key() click to toggle source

Default the flash error key to Rails' default :alert.

# File lib/rodauth/rails/feature/base.rb, line 16
def flash_error_key
  :alert
end
rails_controller() click to toggle source
# File lib/rodauth/rails/feature/base.rb, line 25
def rails_controller
  if only_json? && Rodauth::Rails.api_only?
    ActionController::API
  else
    ActionController::Base
  end
end
rails_controller_eval(&block) click to toggle source

Evaluates the block in context of a Rodauth controller instance.

# File lib/rodauth/rails/feature/base.rb, line 21
def rails_controller_eval(&block)
  rails_controller_instance.instance_exec(&block)
end

Private Instance Methods

_rails_controller_instance() click to toggle source

Instances of the configured controller with current request's env hash.

# File lib/rodauth/rails/feature/base.rb, line 38
def _rails_controller_instance
  controller = rails_controller.new
  prepare_rails_controller(controller, rails_request)
  controller
end
prepare_rails_controller(controller, rails_request) click to toggle source
# File lib/rodauth/rails/feature/base.rb, line 45
def prepare_rails_controller(controller, rails_request)
  controller.set_request! rails_request
  controller.set_response! rails_controller.make_response!(rails_request)
end
rails_api_controller?() click to toggle source
# File lib/rodauth/rails/feature/base.rb, line 56
def rails_api_controller?
  defined?(ActionController::API) && rails_controller <= ActionController::API
end