Class: Decidim::Admin::Abilities::AdminAbility

Inherits:
Decidim::Abilities::AdminAbility show all
Defined in:
decidim-admin/app/models/decidim/admin/abilities/admin_ability.rb

Overview

Defines the abilities for a user in the admin section. Intended to be used with ‘cancancan`.

Instance Attribute Summary

Attributes inherited from Decidim::Abilities::AdminAbility

#user

Instance Method Summary collapse

Methods inherited from Decidim::Abilities::AdminAbility

#admin?, #initialize

Constructor Details

This class inherits a constructor from Decidim::Abilities::AdminAbility

Instance Method Details

#define_abilitiesObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
# File 'decidim-admin/app/models/decidim/admin/abilities/admin_ability.rb', line 9

def define_abilities
  super

  can :manage, ParticipatoryProcess
  can :manage, ParticipatoryProcessGroup
  can :manage, ParticipatoryProcessStep
  can :manage, Category
  can :manage, ParticipatoryProcessUserRole
  can [:create, :update, :index, :new, :read], StaticPage

  can [:update_slug, :destroy], [StaticPage, StaticPageForm] do |page|
    !StaticPage.default?(page.slug)
  end

  can [:read, :update], Decidim::Organization do |organization|
    organization == user.organization
  end

  can :manage, Feature
  can :manage, :admin_users

  can :manage, :managed_users
  cannot [:new, :create], :managed_users if empty_available_authorizations?
  can :impersonate, Decidim::User do |user_to_impersonate|
    user_to_impersonate.managed? && Decidim::ImpersonationLog.active.empty?
  end
  can :promote, Decidim::User do |user_to_promote|
    user_to_promote.managed? && Decidim::ImpersonationLog.active.empty?
  end

  can :manage, Moderation
  can :manage, Attachment
  can :manage, Scope
  can :manage, ScopeType
  can :manage, Newsletter
  can [:create, :index, :new, :read, :invite], User

  can [:destroy], [User] do |user_to_destroy|
    user != user_to_destroy
  end

  can [:index, :verify, :reject], UserGroup
end