Sha256: fc25c8a0edc65e7405721a2776fed2858e6f4fdf947c7531b27c65c152c20e36
Contents?: true
Size: 910 Bytes
Versions: 3
Compression:
Stored size: 910 Bytes
Contents
# frozen_string_literal: true module Decidim module Consultations module Abilities module Admin # Defines the abilities related to user able to administer consultations. # Intended to be used with `cancancan`. class ConsultationAdminAbility include CanCan::Ability attr_reader :user, :context def initialize(user, context) return unless user&.admin? @user = user @context = context can :manage, Consultation cannot :publish_results, Consultation can :publish_results, Consultation do |consultation| consultation.finished? && !consultation.results_published? end cannot :unpublish_results, Consultation can :unpublish_results, Consultation, &:results_published? end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems