Module: Spree::Admin::PermissionChecks

Included in:
Actions::ActionBuilder, MainMenu::ItemBuilder, MainMenu::SectionBuilder, Tabs::TabBuilder
Defined in:
app/models/spree/admin/permission_checks.rb

Instance Method Summary collapse

Instance Method Details

#with_admin_ability_check(*classes) ⇒ Object



14
15
16
17
# File 'app/models/spree/admin/permission_checks.rb', line 14

def with_admin_ability_check(*classes)
  @availability_checks << ->(ability, _current) { classes.any? { |c| ability.can?(:admin, c) } }
  self
end

#with_availability_check(availability_check) ⇒ Object



4
5
6
7
# File 'app/models/spree/admin/permission_checks.rb', line 4

def with_availability_check(availability_check)
  @availability_checks << availability_check
  self
end

#with_create_ability_check(*classes) ⇒ Object



24
25
26
27
# File 'app/models/spree/admin/permission_checks.rb', line 24

def with_create_ability_check(*classes)
  @availability_checks << ->(ability, _current) { classes.any? { |c| ability.can?(:create, c) } }
  self
end

#with_fire_ability_check ⇒ Object



39
40
41
42
# File 'app/models/spree/admin/permission_checks.rb', line 39

def with_fire_ability_check
  @availability_checks << ->(ability, resource) { ability.can?(:fire, resource) }
  self
end

#with_index_ability_check(*classes) ⇒ Object



19
20
21
22
# File 'app/models/spree/admin/permission_checks.rb', line 19

def with_index_ability_check(*classes)
  @availability_checks << ->(ability, _current) { classes.any? { |c| ability.can?(:index, c) } }
  self
end

#with_manage_ability_check(*classes) ⇒ Object



9
10
11
12
# File 'app/models/spree/admin/permission_checks.rb', line 9

def with_manage_ability_check(*classes)
  @availability_checks << ->(ability, _current) { classes.any? { |c| ability.can?(:manage, c) } }
  self
end

#with_resend_ability_check ⇒ Object



34
35
36
37
# File 'app/models/spree/admin/permission_checks.rb', line 34

def with_resend_ability_check
  @availability_checks << ->(ability, resource) { ability.can?(:resend, resource) }
  self
end

#with_state_change_check(event) ⇒ Object



44
45
46
47
# File 'app/models/spree/admin/permission_checks.rb', line 44

def with_state_change_check(event)
  @availability_checks << ->(_ability, resource) { resource.send("can_#{event}?") }
  self
end

#with_update_ability_check ⇒ Object



29
30
31
32
# File 'app/models/spree/admin/permission_checks.rb', line 29

def with_update_ability_check
  @availability_checks << ->(ability, resource) { ability.can?(:update, resource) }
  self
end