2023-07-12 17:47:08 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-07-19 09:44:42 +10:00
|
|
|
class AddInstanceActor < ActiveRecord::Migration[5.2]
|
2022-01-31 07:38:54 +11:00
|
|
|
class Account < ApplicationRecord
|
|
|
|
# Dummy class, to make migration possible across version changes
|
|
|
|
validates :username, uniqueness: { scope: :domain, case_sensitive: false }
|
2022-04-27 05:22:09 +10:00
|
|
|
|
2024-02-19 22:09:43 +11:00
|
|
|
INSTANCE_ACTOR_ID = -99
|
|
|
|
|
2022-04-27 05:22:09 +10:00
|
|
|
before_create :generate_keys
|
|
|
|
|
|
|
|
def generate_keys
|
|
|
|
keypair = OpenSSL::PKey::RSA.new(2048)
|
|
|
|
self.private_key = keypair.to_pem
|
|
|
|
self.public_key = keypair.public_key.to_pem
|
|
|
|
end
|
2022-01-31 07:38:54 +11:00
|
|
|
end
|
|
|
|
|
2019-07-19 09:44:42 +10:00
|
|
|
def up
|
2024-02-19 22:09:43 +11:00
|
|
|
Account.create!(id: Account::INSTANCE_ACTOR_ID, actor_type: 'Application', locked: true, username: Rails.configuration.x.local_domain)
|
2019-07-19 09:44:42 +10:00
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
2024-02-19 22:09:43 +11:00
|
|
|
Account.find_by(id: Account::INSTANCE_ACTOR_ID, actor_type: 'Application').destroy!
|
2019-07-19 09:44:42 +10:00
|
|
|
end
|
|
|
|
end
|