Class: Decidim::Admin::Abilities::AdminUser

Inherits:
Object
  • Object
show all
Includes:
CanCan::Ability
Defined in:
decidim-admin/app/models/decidim/admin/abilities/admin_user.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(user, _context) ⇒ AdminUser

Returns a new instance of AdminUser.



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
# File 'decidim-admin/app/models/decidim/admin/abilities/admin_user.rb', line 10

def initialize(user, _context)
  return unless user && user.role?(:admin)

  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 :read, :admin_dashboard
  can :manage, :admin_users
  can :manage, Moderation
  can :manage, Attachment
  can :manage, Scope
  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], UserGroup
end