Sha256: 8e026fa11f1959e337973a3c9a9aa791b0eaf487551959d92c67706177b17ba2

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module Decidim
  module Surveys
    module Admin
      class Permissions < Decidim::DefaultPermissions
        def permissions
          return permission_action unless user

          return permission_action unless permission_action.scope == :admin

          case permission_action.subject
          when :questionnaire
            case permission_action.action
            when :export_answers, :update, :create, :destroy
              permission_action.allow!
            end
          when :questionnaire_answers
            case permission_action.action
            when :index, :show, :export_response
              permission_action.allow!
            end
          when :questionnaire_publish_answers
            case permission_action.action
            when :index, :update, :destroy
              if context.fetch(:survey).allow_answers
                permission_action.disallow!
              else
                permission_action.allow!
              end
            end
          end

          permission_action
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
decidim-surveys-0.30.0.rc2 app/permissions/decidim/surveys/admin/permissions.rb
decidim-surveys-0.30.0.rc1 app/permissions/decidim/surveys/admin/permissions.rb