Sha256: 5465758204044d84bc63e631cd4e4b27b0a3a6e65c88d63d903b68bdba129e39
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
module PandaCms class PagesController < ApplicationController include ActionView::Helpers::TagHelper def root params[:path] = "" show end def show if PandaCms.require_login_to_view && !user_signed_in? redirect_to panda_cms_maintenance_path and return end path_to_find = "/" + params[:path].to_s page = Page.find_by(path: path_to_find) || Page.find_by(path: "/404") PandaCms::Current.page = page layout = page&.template&.file_path # TODO: If page is active? if page && layout globals = { page: page, title: page.title } unless ignore_visit? RecordVisitJob.perform_later( url: request.url, user_agent: request.user_agent, referrer: request.referrer, ip_address: request.remote_ip, page_id: page.id, current_user_id: current_user&.id, params: params.to_unsafe_h.except(:controller, :action, :path), visited_at: Time.zone.now ) end render inline: "", assigns: globals, status: :ok, layout: layout else # This works for now, but we may want to override in future (e.g. custom 404s) render file: "#{Rails.root}/public/404.html", layout: false, status: :not_found end end private def ignore_visit? # Ignore visits from bots (TODO: make this configurable) # return true if request.user_agent =~ /bot/i # Ignore visits from Honeybadger return true if request.headers.to_h.key? "Honeybadger-Token" false end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
panda_cms-0.5.3 | app/controllers/panda_cms/pages_controller.rb |
panda_cms-0.5.2 | app/controllers/panda_cms/pages_controller.rb |
panda_cms-0.5.1 | app/controllers/panda_cms/pages_controller.rb |