Sha256: e757189ea3aaadcb1b147733c4c34ec414239152c62824ed2ad85977d830770b
Contents?: true
Size: 1.34 KB
Versions: 4
Compression:
Stored size: 1.34 KB
Contents
module ActionController class Base < Metal def self.disclaimer(document_name, options = {}) before_filter(options) {|c| c.redirect_to_disclaimer(document_name)} end 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 def disclaimer_has_been_accepted session[:disclaimer] && session[:disclaimer][@disclaimer_document_name] == Disclaimer::ACCEPTED end def store_disclaimer_return_location session[:disclaimer] ||= {} session[:disclaimer][@disclaimer_document_name] = url_for(request.parameters) end 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 def host_app_root_path (Disclaimer.host_app_root_path || main_app.root_path).gsub(/\/$/, "") end end end
Version data entries
4 entries across 4 versions & 1 rubygems