Keyrelay xmls

This commit is contained in:
Martin Lensment 2014-11-17 15:21:51 +02:00
parent f637b3ab98
commit f5ce88b548
4 changed files with 59 additions and 4 deletions

View file

@ -1,11 +1,10 @@
module Epp::KeyrelayHelper module Epp::KeyrelayHelper
# rubocop: disable Metrics/PerceivedComplexity # rubocop: disable Metrics/PerceivedComplexity
# rubocop: disable Metrics/CyclomaticComplexity # rubocop: disable Metrics/CyclomaticComplexity
def keyrelay def keyrelay
handle_errors and return unless validate_keyrelay_request handle_errors and return unless validate_keyrelay_request
@domain = find_domain @domain = find_domain_for_keyrelay
handle_errors(@domain) and return unless @domain handle_errors(@domain) and return unless @domain
handle_errors(@domain) and return unless @domain.authenticate(parsed_frame.css('pw').text) handle_errors(@domain) and return unless @domain.authenticate(parsed_frame.css('pw').text)
@ -36,7 +35,7 @@ module Epp::KeyrelayHelper
epp_errors.empty? epp_errors.empty?
end end
def find_domain def find_domain_for_keyrelay
domain_name = parsed_frame.css('name').text.strip.downcase domain_name = parsed_frame.css('name').text.strip.downcase
domain = Epp::EppDomain.find_by(name: domain_name) domain = Epp::EppDomain.find_by(name: domain_name)

View file

@ -11,7 +11,12 @@ module Epp::PollHelper
if @message.attached_obj_type && @message.attached_obj_id if @message.attached_obj_type && @message.attached_obj_id
@object = Object.const_get(@message.attached_obj_type).find(@message.attached_obj_id) @object = Object.const_get(@message.attached_obj_type).find(@message.attached_obj_id)
end end
render 'epp/poll/poll_req'
if @message.attached_obj_type == 'Keyrelay'
render 'epp/poll/poll_keyrelay'
else
render 'epp/poll/poll_req'
end
end end
def ack_poll def ack_poll

View file

@ -3,4 +3,6 @@ class Keyrelay < ActiveRecord::Base
belongs_to :requester, class_name: 'Registrar' belongs_to :requester, class_name: 'Registrar'
belongs_to :accepter, class_name: 'Registrar' belongs_to :accepter, class_name: 'Registrar'
delegate :name, to: :domain, prefix: true
end end

View file

@ -0,0 +1,49 @@
xml.instruct!(:xml, standalone: 'no')
xml.epp(
'xmlns' => 'urn:ietf:params:xml:ns:epp-1.0',
'xmlns:secDNS' => 'urn:ietf:params:xml:ns:secDNS-1.1',
'xmlns:domain' => 'urn:ietf:params:xml:ns:domain-1.0',
'xmlns:keyrelay' => 'urn:ietf:params:xml:ns:keyrelay-1.0'
) do
xml.response do
xml.result('code' => '1301') do
xml.msg 'Command completed successfully; ack to dequeue'
end
xml.tag!('msgQ', 'count' => current_epp_user.queued_messages.count, 'id' => @message.id) do
xml.qDate @message.created_at
xml.msg @message.body
end
xml.resData do
xml.tag!('keyrelay:response') do
xml.tag!('keyrelay:panData') do
xml.tag!('keyrelay:name', @object.domain_name)
xml.tag!('keyrelay:paDate', @object.pa_date)
xml.tag!('keyrelay:keyData') do
xml.tag!('secDNS:flags', @object.key_data_flags)
xml.tag!('secDNS:protocol', @object.key_data_protocol)
xml.tag!('secDNS:alg', @object.key_data_alg)
xml.tag!('secDNS:pubKey', @object.key_data_public_key)
end
xml.tag!('keyrelay:authInfo') do
xml.tag!('domain:pw', @object.auth_info_pw)
end
xml.tag!('keyrelay:expiry') do
xml.tag!('keyrelay:relative', @object.expiry_relative)
xml.tag!('keyrelay:absolute', @object.expiry_absolute)
end
xml.tag!('keyrelay:reID', @object.requester)
xml.tag!('keyrelay:acID', @object.accepter)
end
end
end
xml << render('/epp/shared/trID')
end
end