Class: Integral::PagePolicy

Inherits:
BasePolicy show all
Defined in:
app/policies/integral/page_policy.rb

Overview

Handles Page authorization

Instance Attribute Summary

Attributes inherited from BasePolicy

#instance, #user

Instance Method Summary collapse

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?

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


30
31
32
# File 'app/policies/integral/page_policy.rb', line 30

def destroy?
  user.admin? || user.role?([:page_manager])
end

#editor?Boolean

Returns:

  • (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?

Returns:

  • (Boolean)


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_attributesArray

Returns attributes the user is authorization to edit.

Returns:

  • (Array)

    attributes the user is authorization to edit



35
36
37
38
39
40
41
42
43
44
# File 'app/policies/integral/page_policy.rb', line 35

def permitted_attributes
  return [] unless manager? || editor?

  permitted_params = %i[title description path body status template parent_id image_id lock_version]
  permitted_params.concat Integral.additional_page_params

  permitted_params -= [:status] unless manager?
  permitted_params -= [:path] if !manager? && (editor? && !instance.draft?)
  permitted_params
end

#role_nameSymbol

Returns role name.

Returns:

  • (Symbol)

    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?

Returns:

  • (Boolean)


23
24
25
# File 'app/policies/integral/page_policy.rb', line 23

def update?
  user.admin? || user.role?(%i[page_manager page_editor])
end