Class: Decidim::Components::BaseController

Inherits:
ApplicationController show all
Includes:
NeedsPermission, ParticipatorySpaceContext, Settings
Defined in:
decidim-core/app/controllers/decidim/components/base_controller.rb

Overview

Controller from which all component engines inherit from. It is in charge of setting the appropiate layout, including necessary helpers, and overall fooling the engine into thinking it is isolated.

Instance Method Summary collapse

Methods included from RegistersPermissions

register_permissions

Methods included from UserBlockedChecker

#check_user_block_status, #check_user_not_blocked

Methods included from NeedsSnippets

#snippets

Methods included from Headers::HttpCachingDisabler

#disable_http_caching

Methods included from HasStoredPath

#skip_store_location?, #store_current_location

Methods included from NeedsOrganization

enhance_controller, extended, included

Instance Method Details

#current_componentObject



44
45
46
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 44

def current_component
  request.env["decidim.current_component"]
end

#current_manifestObject



48
49
50
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 48

def current_manifest
  @current_manifest ||= current_component.manifest
end

#current_participatory_spaceObject



40
41
42
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 40

def current_participatory_space
  request.env["decidim.current_participatory_space"]
end

#permission_class_chainObject



60
61
62
63
64
65
66
67
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 60

def permission_class_chain
  [
    current_component.manifest.permissions_class,
    current_participatory_space.manifest.permissions_class,
    Decidim::Admin::Permissions,
    Decidim::Permissions
  ]
end

#permission_scopeObject



56
57
58
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 56

def permission_scope
  :public
end

#redirect_unless_feature_privateObject

Raises:

  • (ActionController::RoutingError)


69
70
71
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 69

def redirect_unless_feature_private
  raise ActionController::RoutingError, "Not Found" unless current_user_can_visit_space?
end

#set_component_breadcrumb_itemObject



73
74
75
76
77
78
79
80
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 73

def set_component_breadcrumb_item
  context_breadcrumb_items << {
    label: current_component.name,
    url: root_path,
    active: false,
    resource: current_component
  }
end

#share_tokenObject



52
53
54
# File 'decidim-core/app/controllers/decidim/components/base_controller.rb', line 52

def share_token
  params[:share_token]
end