Do not handle not registered domain in EPP domain:info

This commit is contained in:
Artur Beljajev 2019-03-15 12:46:18 +02:00
parent d86ec026e3
commit 66417d69d9
7 changed files with 41 additions and 183 deletions

View file

@ -1,56 +1,22 @@
class Epp::DomainsController < EppController
before_action :find_domain, only: %i[renew update transfer delete]
before_action :find_password, only: %i[update transfer delete]
skip_authorization_check only: :info
before_action :find_domain, only: %i[info renew update transfer delete]
before_action :find_password, only: %i[info update transfer delete]
def info
domain_name = DNS::DomainName.new(params[:parsed_frame].at_css('name').text.strip.downcase)
authorize! :info, @domain, @password
if Domain.release_to_auction
if domain_name.at_auction?
@name = domain_name
@status = 'At auction'
render_epp_response '/epp/domains/info/unregistered_domain'
return
elsif domain_name.awaiting_payment?
@name = domain_name
@status = 'Awaiting payment'
render_epp_response '/epp/domains/info/unregistered_domain'
return
elsif domain_name.pending_registration?
@name = domain_name
@status = 'Reserved'
render_epp_response '/epp/domains/info/unregistered_domain'
return
end
@hosts = params[:parsed_frame].css('name').first['hosts'] || 'all'
case @hosts
when 'del'
@nameservers = @domain.delegated_nameservers.sort
when 'sub'
@nameservers = @domain.subordinate_nameservers.sort
when 'all'
@nameservers = @domain.nameservers.sort
end
if domain_name.registered?
find_domain
find_password
authorize! :info, @domain, @password
@hosts = params[:parsed_frame].css('name').first['hosts'] || 'all'
case @hosts
when 'del'
@nameservers = @domain.delegated_nameservers.sort
when 'sub'
@nameservers = @domain.subordinate_nameservers.sort
when 'all'
@nameservers = @domain.nameservers.sort
end
render_epp_response '/epp/domains/info/registered_domain'
elsif domain_name.blocked?
@name = domain_name
@status = 'Blocked'
render_epp_response '/epp/domains/info/unregistered_domain'
elsif domain_name.reserved?
@name = domain_name
@status = 'Reserved'
render_epp_response '/epp/domains/info/unregistered_domain'
end
render_epp_response '/epp/domains/info'
end
def create

View file

@ -57,6 +57,10 @@ module DNS
Domain.find_by_idn(name)
end
def not_registered?
!registered?
end
def blocked?
BlockedDomain.where(name: name).any?
end

View file

@ -1,16 +0,0 @@
xml.epp_head do
xml.response do
xml.result code: '1000' do
xml.msg 'Command completed successfully'
end
xml.resData do
xml.tag! 'domain:infData', 'xmlns:domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd' do
xml.tag! 'domain:name', @name
xml.tag! 'domain:status', 's' => @status
end
end
render 'epp/shared/trID', builder: xml
end
end