internetee-registry/app/models/concerns/contact/transferable.rb
2018-01-26 13:31:52 +02:00

28 lines
704 B
Ruby

module Concerns::Contact::Transferable
extend ActiveSupport::Concern
included do
validates :auth_info, presence: true
after_initialize :generate_auth_info, if: 'new_record? && auth_info.blank?'
end
def transfer(new_registrar)
new_contact = self.dup
new_contact.registrar = new_registrar
new_contact.original = self
new_contact.code = nil
new_contact.regenerate_code
new_contact.regenerate_auth_info
new_contact.remove_address unless self.class.address_processing?
new_contact.save!
new_contact
end
protected
def generate_auth_info
self.auth_info = SecureRandom.hex(11)
end
alias_method :regenerate_auth_info, :generate_auth_info
end