Project

General

Profile

Download (1.11 KB) Statistics
| Branch: | Tag: | Revision:
class FakeSetting < ActiveRecord::Base
self.table_name = 'settings'

def default=(v)
write_attribute :default, v.to_yaml
end

def value=(v)
v = v.to_yaml unless v.nil?
write_attribute :value, v
end

def value
v = read_attribute(:value)
YAML.load(v) unless v.nil?
end
end

class MigrateWebsocketsSetting < ActiveRecord::Migration
def up
return unless encrypt = FakeSetting.find_by_name("websockets_encrypt")
encrypt.settings_type = "boolean"
if encrypt.value == "auto"
encrypt.value = if Setting[:websockets_ssl_key].present? && Setting[:websockets_ssl_cert].present?
true
else
false
end
elsif encrypt.value.present?
encrypt.value = Foreman::Cast.to_bool(encrypt.value)
end
encrypt.default = !!SETTINGS[:require_ssl]
encrypt.save!
Rails.cache.delete(encrypt.name.to_s)
end

def down
# delete and reset on next app server start
encrypt = FakeSetting.find_by_name("websockets_encrypt")
Rails.cache.delete(encrypt.name.to_s)
encrypt.delete
end
end
(261-261/282)