Class: Decidim::Components::BaseController

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

Overview

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

Instance Method Summary collapse

Methods included from RegistersPermissions

register_permissions

Methods included from HttpCachingDisabler

#disable_http_caching

Methods included from NeedsOrganization

enhance_controller, extended, included

Instance Method Details

#current_componentObject



41
42
43
# File 'app/controllers/decidim/components/base_controller.rb', line 41

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

#current_manifestObject



45
46
47
# File 'app/controllers/decidim/components/base_controller.rb', line 45

def current_manifest
  @current_manifest ||= current_component.manifest
end

#current_participatory_spaceObject



37
38
39
# File 'app/controllers/decidim/components/base_controller.rb', line 37

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

#permission_class_chainObject



53
54
55
56
57
58
59
60
# File 'app/controllers/decidim/components/base_controller.rb', line 53

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

#permission_scopeObject



49
50
51
# File 'app/controllers/decidim/components/base_controller.rb', line 49

def permission_scope
  :public
end

#redirect_unless_feature_privateObject

Raises:

  • (ActionController::RoutingError)


62
63
64
# File 'app/controllers/decidim/components/base_controller.rb', line 62

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