Class: Panda::Core::Admin::BaseController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/panda/core/admin/base_controller.rb

Overview

Base controller for all admin interfaces across Panda gems Provides authentication, helpers, and hooks for extending functionality

Instance Method Summary collapse

Instance Method Details

#add_breadcrumb(name, path = nil) ⇒ Object



31
32
33
# File 'app/controllers/panda/core/admin/base_controller.rb', line 31

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

#authenticate_admin_user!Object



50
51
52
53
54
55
# File 'app/controllers/panda/core/admin/base_controller.rb', line 50

def authenticate_admin_user!
  return if user_signed_in? && current_user.admin?

  redirect_to panda_core.,
    flash: {error: "Please login to view this!"}
end

#authenticate_user!Object



46
47
48
# File 'app/controllers/panda/core/admin/base_controller.rb', line 46

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


27
28
29
# File 'app/controllers/panda/core/admin/base_controller.rb', line 27

def breadcrumbs
  @breadcrumbs ||= []
end

#current_userObject

Required for paper_trail and seems as good as convention these days



58
59
60
# File 'app/controllers/panda/core/admin/base_controller.rb', line 58

def current_user
  Panda::Core::Current.user
end

#set_current_request_detailsvoid

This method returns an undefined value.

Set the current request details



37
38
39
40
41
42
43
44
# File 'app/controllers/panda/core/admin/base_controller.rb', line 37

def set_current_request_details
  # Set Core current attributes
  Panda::Core::Current.request_id = request.uuid
  Panda::Core::Current.user_agent = request.user_agent
  Panda::Core::Current.ip_address = request.ip
  Panda::Core::Current.root = request.base_url
  Panda::Core::Current.user ||= Panda::Core::User.find_by(id: session[:user_id]) if session[:user_id]
end

#user_signed_in?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'app/controllers/panda/core/admin/base_controller.rb', line 62

def user_signed_in?
  !!Panda::Core::Current.user
end