Sha256: e53d1ea04828bc235e6c6a0714d295bf700664dbea4018d9adb98a514b533982

Contents?: true

Size: 773 Bytes

Versions: 42

Compression:

Stored size: 773 Bytes

Contents

class RenameTemplateInvocationPermission < ActiveRecord::Migration[4.2]
  PERMISSION_NAMES = %w(execute_template_invocation create_template_invocations).freeze

  def up
    switch_filtering_permission!(*PERMISSION_NAMES)
  end

  def down
    switch_filtering_permission!(*PERMISSION_NAMES.reverse)
  end

  private

  def switch_filtering_permission!(old, new)
    old_permission = Permission.find_by(:name => old)
    return if old_permission.nil?
    new_permission = Permission.find_or_create_by(:name => new,
                                                  :resource_type => 'TemplateInvocation')
    old_permission.filterings.each do |filtering|
      filtering.permission_id = new_permission.id
      filtering.save!
    end
    old_permission.destroy!
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
foreman_remote_execution-1.4.3 db/migrate/20180110104432_rename_template_invocation_permission.rb
foreman_remote_execution-1.4.2 db/migrate/20180110104432_rename_template_invocation_permission.rb