Sha256: 76f23e74f3f723211b325bd1163a6de80f20f4e392783bfbc40c834199148bce

Contents?: true

Size: 1.36 KB

Versions: 10

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    module Abilities
      # Defines the abilities for a user in the admin section. Intended to be
      # used with `cancancan`.
      class AdminUser
        include CanCan::Ability

        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, :reject], UserGroup
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
decidim-admin-0.4.0 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.4.0 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.3.2 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.3.2 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.3.1 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.3.1 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.3.0 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.3.0 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.2.0 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.2.0 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb