Sha256: 3e95e3049a4cd291632b645a19bd6dfd9ccaa5a7eb94493e3a31a0effef27eac

Contents?: true

Size: 1.05 KB

Versions: 8

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Decidim
  module Surveys
    module Abilities
      # Defines the abilities related to surveys for a logged in process admin user.
      # Intended to be used with `cancancan`.
      class ProcessAdminUser
        include CanCan::Ability

        attr_reader :user, :context

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

          @user = user
          @context = context

          can :manage, Survey do |survey|
            participatory_processes.include?(survey.feature.participatory_process)
          end
        end

        private

        def current_settings
          context.fetch(:current_settings, nil)
        end

        def feature_settings
          context.fetch(:feature_settings, nil)
        end

        def current_feature
          context.fetch(:current_feature, nil)
        end

        def participatory_processes
          @participatory_processes ||= Decidim::Admin::ManageableParticipatoryProcessesForUser.for(@user)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
decidim-surveys-0.4.0 app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-0.4.0 decidim-surveys/app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-surveys-0.3.2 app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-0.3.2 decidim-surveys/app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-surveys-0.3.1 app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-0.3.1 decidim-surveys/app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-surveys-0.3.0 app/models/decidim/surveys/abilities/process_admin_user.rb
decidim-0.3.0 decidim-surveys/app/models/decidim/surveys/abilities/process_admin_user.rb