Class: Decidim::Admin::Abilities::ParticipatoryProcessAdminAbility

Inherits:
Decidim::Abilities::ParticipatoryProcessAdminAbility
  • Object
show all
Defined in:
app/models/decidim/admin/abilities/participatory_process_admin_ability.rb

Overview

Defines the abilities for a participatory process admin in the admin section. Intended to be used with ‘cancancan`. This is not intended to extend the base `Decidim::Abilities::BaseAbility` class, it should only be used in the Admin engine.

This ability will not apply to organization admins.

Instance Method Summary collapse

Instance Method Details

#define_abilitiesObject



13
14
15
16
17
18
19
20
21
22
# File 'app/models/decidim/admin/abilities/participatory_process_admin_ability.rb', line 13

def define_abilities
  super

  can :manage, ParticipatoryProcess do |process|
    can_manage_process?(process)
  end

  cannot :create, ParticipatoryProcess
  cannot :destroy, ParticipatoryProcess
end

#define_participatory_process_abilitiesObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/models/decidim/admin/abilities/participatory_process_admin_ability.rb', line 24

def define_participatory_process_abilities
  super

  can :manage, Component do |component|
    can_manage_process?(component.participatory_space)
  end

  can :manage, Category do |category|
    can_manage_process?(category.participatory_space)
  end

  can :manage, AttachmentCollection do |attachment_collection|
    can_manage_process?(attachment_collection.collection_for)
  end

  can :manage, Attachment do |attachment|
    attachment.attached_to.is_a?(Decidim::ParticipatoryProcess) && can_manage_process?(attachment.attached_to)
  end

  can :manage, ParticipatoryProcessUserRole do |role|
    can_manage_process?(role.participatory_process) && role.user != @user
  end

  can :manage, Moderation do |moderation|
    can_manage_process?(moderation.participatory_space)
  end

  can :manage, ParticipatoryProcessStep do |step|
    can_manage_process?(step.participatory_process)
  end
end