Sha256: 4c156ebe845f0a32fd1c0034d7a0e5da92bbafc3c35b6798ae7f8778bbc475e2

Contents?: true

Size: 889 Bytes

Versions: 3

Compression:

Stored size: 889 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Assemblies
    module Abilities
      module Admin
        # Defines the abilities for an assembly moderator user. Intended to be used
        # with `cancancan`.
        class AssemblyModeratorAbility < Decidim::Assemblies::Abilities::Admin::AssemblyRoleAbility
          def define_abilities
            super

            can [:index, :read], Assembly do |assembly|
              can_manage_assembly?(assembly)
            end

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

            can [:unreport, :hide], Reportable do |reportable|
              can_manage_assembly?(reportable.component.participatory_space)
            end
          end

          def role
            :moderator
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-assemblies-0.11.2 app/models/decidim/assemblies/abilities/admin/assembly_moderator_ability.rb
decidim-assemblies-0.11.1 app/models/decidim/assemblies/abilities/admin/assembly_moderator_ability.rb
decidim-assemblies-0.11.0.pre1 app/models/decidim/assemblies/abilities/admin/assembly_moderator_ability.rb