Class: Decidim::Components::BaseController
Overview
Controller from which all component engines inherit from. It is in charge of setting the appropriate layout, including necessary helpers, and overall fooling the engine into thinking it is isolated.
Instance Method Summary
collapse
register_permissions
#store_share_token
#check_user_block_status, #check_user_not_blocked
#snippets
#disable_http_caching
#skip_store_location?, #store_current_location
#attachment?, #default_locale?
enhance_controller, extended, included
Instance Method Details
#current_component ⇒ Object
44
45
46
|
# File 'app/controllers/decidim/components/base_controller.rb', line 44
def current_component
request.env["decidim.current_component"]
end
|
#current_manifest ⇒ Object
48
49
50
|
# File 'app/controllers/decidim/components/base_controller.rb', line 48
def current_manifest
@current_manifest ||= current_component.manifest
end
|
#current_participatory_space ⇒ Object
40
41
42
|
# File 'app/controllers/decidim/components/base_controller.rb', line 40
def current_participatory_space
request.env["decidim.current_participatory_space"]
end
|
#permission_class_chain ⇒ Object
56
57
58
59
60
61
62
63
|
# File 'app/controllers/decidim/components/base_controller.rb', line 56
def permission_class_chain
[
current_component.manifest.permissions_class,
current_participatory_space.manifest.permissions_class,
Decidim::Admin::Permissions,
Decidim::Permissions
]
end
|
#permission_scope ⇒ Object
52
53
54
|
# File 'app/controllers/decidim/components/base_controller.rb', line 52
def permission_scope
:public
end
|
#redirect_unless_feature_private ⇒ Object
65
66
67
|
# File 'app/controllers/decidim/components/base_controller.rb', line 65
def redirect_unless_feature_private
raise ActionController::RoutingError, "Not Found" unless current_user_can_visit_space?
end
|
#set_component_breadcrumb_item ⇒ Object
69
70
71
72
73
74
75
76
|
# File 'app/controllers/decidim/components/base_controller.rb', line 69
def set_component_breadcrumb_item
context_breadcrumb_items << {
label: current_component.name,
url: Decidim::EngineRouter.main_proxy(current_component).root_path,
active: false,
resource: current_component
}
end
|