Sha256: 9f47cdd0c59c801969b011d376d373d4c7d523e9e037c041e244f07aa8c90cc3

Contents?: true

Size: 764 Bytes

Versions: 3

Compression:

Stored size: 764 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Consultations
    module Abilities
      module Admin
        # Defines the abilities related to user able to administer consultation's questions.
        # Intended to be used with `cancancan`.
        class QuestionAdminAbility
          include CanCan::Ability

          attr_reader :user, :context

          def initialize(user, context)
            return unless user&.admin?

            @user = user
            @context = context

            can :manage, Question
            cannot :publish, Question
            can :publish, Question do |question|
              question.external_voting || question.responses_count.positive?
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-consultations-0.11.2 app/models/decidim/consultations/abilities/admin/question_admin_ability.rb
decidim-consultations-0.11.1 app/models/decidim/consultations/abilities/admin/question_admin_ability.rb
decidim-consultations-0.11.0.pre1 app/models/decidim/consultations/abilities/admin/question_admin_ability.rb