Class: Integral::PagePolicy
- Inherits:
-
BasePolicy
- Object
- BasePolicy
- Integral::PagePolicy
- Defined in:
- app/policies/integral/page_policy.rb
Overview
Handles Page authorization
Instance Attribute Summary
Attributes inherited from BasePolicy
Instance Method Summary collapse
- #create? ⇒ Boolean (also: #new?)
- #destroy? ⇒ Boolean
- #editor? ⇒ Boolean
- #index? ⇒ Boolean (also: #list?)
-
#permitted_attributes ⇒ Array
Attributes the user is authorization to edit.
-
#role_name ⇒ Symbol
Role name.
- #update? ⇒ Boolean (also: #edit?)
Methods inherited from BasePolicy
#initialize, #manager?, #permitted_attribute?, #unpermitted_attribute?
Constructor Details
This class inherits a constructor from Integral::BasePolicy
Instance Method Details
#create? ⇒ Boolean Also known as: new?
17 18 19 |
# File 'app/policies/integral/page_policy.rb', line 17 def create? user.admin? || user.role?(%i[page_manager page_editor]) end |
#destroy? ⇒ Boolean
30 31 32 |
# File 'app/policies/integral/page_policy.rb', line 30 def destroy? user.admin? || user.role?([:page_manager]) end |
#editor? ⇒ Boolean
9 10 11 |
# File 'app/policies/integral/page_policy.rb', line 9 def editor? user.role?(:page_editor) || user.admin? end |
#index? ⇒ Boolean Also known as: list?
13 14 15 |
# File 'app/policies/integral/page_policy.rb', line 13 def index? user.admin? || user.role?(%i[page_manager page_editor page_contributer page_reader]) end |
#permitted_attributes ⇒ Array
Returns attributes the user is authorization to edit.
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/policies/integral/page_policy.rb', line 35 def permitted_attributes return [] unless manager? || editor? permitted_params = %i[title description path body locale status template parent_id image_id lock_version tag_list] permitted_params.concat [ alternate_ids: [] ] permitted_params.concat [ { active_block_list_attributes: [ :id, :content ] } ] permitted_params.concat Integral.additional_page_params permitted_params -= [:status] unless manager? permitted_params -= [:path] if !manager? && (editor? && !instance.draft?) permitted_params end |
#role_name ⇒ Symbol
Returns role name.
5 6 7 |
# File 'app/policies/integral/page_policy.rb', line 5 def role_name :page_manager end |
#update? ⇒ Boolean Also known as: edit?
23 24 25 |
# File 'app/policies/integral/page_policy.rb', line 23 def update? user.admin? || user.role?(%i[page_manager page_editor]) end |