Add basic keyrelay command, tests

This commit is contained in:
Martin Lensment 2014-11-14 16:11:09 +02:00
parent 1f5efa78ac
commit ec721b69c0
10 changed files with 133 additions and 5 deletions

View file

@ -3,6 +3,7 @@ class Epp::CommandsController < ApplicationController
include Epp::DomainsHelper
include Epp::ContactsHelper
include Epp::PollHelper
include Epp::KeyrelayHelper
include Shared::UserStamper
helper WhodunnitHelper

View file

@ -0,0 +1,30 @@
module Epp::KeyrelayHelper
def keyrelay
domain = Domain.find_by(name: parsed_frame.css('name').text)
abs_datetime = parsed_frame.css('absolute').text
abs_datetime = abs_datetime.to_date if abs_datetime
kr = domain.keyrelays.create(
domain: domain,
pa_date: Time.now,
key_data_flags: parsed_frame.css('flags').text,
key_data_protocol: parsed_frame.css('protocol').text,
key_data_alg: parsed_frame.css('alg').text,
key_data_public_key: parsed_frame.css('pubKey').text,
auth_info_pw: parsed_frame.css('pw').text,
expiry_relative: parsed_frame.css('relative').text,
expiry_absolute: abs_datetime,
requester: current_epp_user.registrar,
accepter: domain.registrar
)
domain.registrar.messages.create(
body: 'Key Relay action completed successfully.',
attached_obj_type: kr.class.to_s,
attached_obj_id: kr.id
)
render '/epp/shared/success'
end
end

View file

@ -29,6 +29,9 @@ class Domain < ActiveRecord::Base
has_many :domain_transfers, dependent: :delete_all
has_many :dnskeys, dependent: :delete_all
has_many :keyrelays
accepts_nested_attributes_for :dnskeys, allow_destroy: true,
reject_if: proc { |attrs| attrs[:public_key].blank? }

6
app/models/keyrelay.rb Normal file
View file

@ -0,0 +1,6 @@
class Keyrelay < ActiveRecord::Base
belongs_to :domain
belongs_to :requester, class_name: 'Registrar'
belongs_to :accepter, class_name: 'Registrar'
end

View file

@ -0,0 +1,9 @@
xml.epp_head do
xml.response do
xml.result('code' => '1000') do
xml.msg 'Command completed successfully'
end
end
xml << render('/epp/shared/trID')
end