class ActionController::Base

Public Class Methods

disclaimer(document_name, options = {}) click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 5
def self.disclaimer(document_name, options = {})

  before_filter(options) {|c| c.redirect_to_disclaimer(document_name)}

end

Public Instance Methods

disclaimer_exists?(document_name = nil) click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 30
def disclaimer_exists?(document_name = nil)
  if document_name and Disclaimer::Document.exists?(:name => document_name)
    return true
  else
    Rails.logger.error "No disclaimer displayed as unable to find Disclaimer::Document with name '#{document_name || 'nil'}'"
    return false
  end
end
disclaimer_has_been_accepted() click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 21
def disclaimer_has_been_accepted
  session[:disclaimer] && session[:disclaimer][@disclaimer_document_name] == Disclaimer::ACCEPTED
end
host_app_root_path() click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 39
def host_app_root_path
  (Disclaimer.host_app_root_path || main_app.root_path).gsub(/\/$/, "")
end
redirect_to_disclaimer(document_name) click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 11
def redirect_to_disclaimer(document_name)
  return unless disclaimer_exists?(document_name)
  @disclaimer_document_name = document_name.to_sym
  unless disclaimer_has_been_accepted
    store_disclaimer_return_location
    document = Disclaimer::Document.find_by_name(@disclaimer_document_name)
    redirect_to host_app_root_path + disclaimer.document_path(document)
  end
end
store_disclaimer_return_location() click to toggle source
# File lib/rails/actionpack/lib/action_controller/base.rb, line 25
def store_disclaimer_return_location
  session[:disclaimer] ||= {}
  session[:disclaimer][@disclaimer_document_name] = url_for(request.parameters)
end