Sha256: b8a5116243f6a06d1b1079793cd8e66a0e24557d0d5ad26703b101c9e482dc14

Contents?: true

Size: 1.35 KB

Versions: 8

Compression:

Stored size: 1.35 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], UserGroup
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
decidim-admin-0.1.0 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.1.0 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.0.8.1 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.0.8.1 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.0.7 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.0.7 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb
decidim-admin-0.0.6 app/models/decidim/admin/abilities/admin_user.rb
decidim-0.0.6 decidim-admin/app/models/decidim/admin/abilities/admin_user.rb