Sha256: 07957baa1f7e3bc1824e4ffe0e6601b02e0cee9717a18d723246d9b1cf96f610

Contents?: true

Size: 1.45 KB

Versions: 18

Compression:

Stored size: 1.45 KB

Contents

module PandaCms
  class ApplicationController < ::ActionController::Base
    include ApplicationHelper
    include ::ApplicationHelper

    # Add flash types for improved alert support with Tailwind
    add_flash_types :success, :warning, :error, :info

    before_action :set_current_request_details

    helper_method :breadcrumbs
    helper_method :current_user
    helper_method :user_signed_in?

    def breadcrumbs
      @breadcrumbs ||= []
    end

    def add_breadcrumb(name, path = nil)
      breadcrumbs << Breadcrumb.new(name, path)
    end

    # Set the current request details
    # @return [void]
    def set_current_request_details
      PandaCms::Current.request_id = request.uuid
      PandaCms::Current.user_agent = request.user_agent
      PandaCms::Current.ip_address = request.ip
      PandaCms::Current.root = request.base_url
      PandaCms::Current.page = nil
      PandaCms::Current.user ||= User.find_by(id: session[:user_id]) if session[:user_id]
    end

    def authenticate_user!
      redirect_to root_path, flash: {error: "Please login to view this!"} unless user_signed_in?
    end

    def authenticate_admin_user!
      redirect_to root_path, flash: {error: "Please login to view this!"} unless user_signed_in? && current_user.admin?
    end

    # Required for paper_trail and seems as good as convention these days
    def current_user
      PandaCms::Current.user
    end

    def user_signed_in?
      !!PandaCms::Current.user
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
panda_cms-0.3.9 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.8 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.7 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.6 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.5 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.4 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.3 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.2 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.1 app/controllers/panda_cms/application_controller.rb
panda_cms-0.3.0 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.7 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.6 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.5 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.4 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.3 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.2 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.1 app/controllers/panda_cms/application_controller.rb
panda_cms-0.2.0 app/controllers/panda_cms/application_controller.rb