Sha256: 5cd008a2c272205fefe8a4af29310e90a4bea5827c80ac0aa068541ceecd0dfa
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true module Decidim module ActionDelegator module Admin class FixResourcePermissions < Rectify::Command def initialize(resources) @resources = resources @errors = [] end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if the form wasn't valid and we couldn't proceed. # # Returns nothing. def call return broadcast(:invalid) if resources.blank? update_permissions return broadcast(:invalid) if errors.any? broadcast(:ok) end private attr_reader :resources, :errors def update_permissions resources.each do |resource| resource.resource_manifest.actions.each do |action| resource_permission ||= resource.resource_permission || resource.build_resource_permission next unless resource_permission.permissions.dig(action, "authorization_handlers", "delegations_verifier").nil? resource_permission.permissions.deep_merge!({ action => { "authorization_handlers" => { "delegations_verifier" => {} } } }) @errors << resource unless resource_permission.save end end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems