Sha256: 157e1170af3726468ef19d96986cc80ce048d03e87f8ae21a6846eff70c41c30
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true module Decidim module ActionDelegator module Admin class FixResourcePermissions < Decidim::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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-action_delegator-0.8.1 | app/commands/decidim/action_delegator/admin/fix_resource_permissions.rb |