Sha256: e12b523a04ba6ace6d4934aea5a4b5d39f278688b488f6dded3b0f2a254860aa

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Decidim
  module DecidimAwesome
    module Admin
      class Permissions < Decidim::DefaultPermissions
        include ConfigConstraintsHelpers

        def permissions
          return permission_action if permission_action.scope != :admin
          return permission_action unless user
          return permission_action if user.read_attribute("admin").blank?

          if permission_action.subject == :admin_accountability && DecidimAwesome.admin_accountability.respond_to?(:include?)
            if global?
              toggle_allow(DecidimAwesome.admin_accountability.include?(:admin_roles))
            else
              toggle_allow(DecidimAwesome.admin_accountability.include?(:participatory_space_roles))
            end
          elsif permission_action.action == :edit_config
            toggle_allow(config_enabled?(permission_action.subject))
          end

          permission_action
        end

        private

        def global?
          context.fetch(:global)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
decidim-decidim_awesome-0.10.2 app/permissions/decidim/decidim_awesome/admin/permissions.rb
decidim-decidim_awesome-0.10.1 app/permissions/decidim/decidim_awesome/admin/permissions.rb
decidim-decidim_awesome-0.10.0 app/permissions/decidim/decidim_awesome/admin/permissions.rb
decidim-decidim_awesome-0.9.3 app/permissions/decidim/decidim_awesome/admin/permissions.rb
decidim-decidim_awesome-0.9.1 app/permissions/decidim/decidim_awesome/admin/permissions.rb