Merge remote-tracking branch 'origin/master' into story/118822101-epp-errors

This commit is contained in:
Vladimir Krylov 2016-06-21 19:34:41 +03:00
commit 2f0182b083
5 changed files with 31 additions and 7 deletions

View file

@ -1,5 +1,28 @@
20.05.2016 16.06.2016
* EPP
* BUG: XML syntax error for poll and logout if optional clTRID is missing (#121580929)
* support for glue records with ipv6 addresses only (#120095555)
15.06.2016
* Portal for registrants
* Notice on login screen on limited access to Estonian electronic IDs (#120182999)
* Admin interface:
* epp log view has now reference to the object name for better usability (#118912395)
* BUG: dnssec data missing from domain history view (#115762063)
* BUG: internal error in doamin history view in case some contact has been deleted (#118300251)
* Registry:
* all values sent over epp are now trimmed of beginning and trailing spaces (#117690107)
* typo and form fixes for automated e-mail messages sent to domain contacts
* EPP:
* BUG: error 2005 on adding IDN nameservers (#114677695)
* BUG: nameserver lable maximum 63 char length validation handled inproperly (#114677695) - support currently limited to Estonian IDN characters.
* BUG: validation passes out of range ident_type values - now limited to org, priv and birthday (#111601356)
* BUG: internal error on hello (#120828283)
* BUG: internal error broken incoming frame (#121580929)
* Deploy:
* BUG: incorrect version in commit message on deploy - config/deploy-example.rb (#120259603)
20.05.2016
* Portal for registrars * Portal for registrars
* domain details view new displays contact name in addition to ID (#117226457) * domain details view new displays contact name in addition to ID (#117226457)
* added an option to set veryfied = "yes" parameter to GUI for registrant change and domain delete opertions (#116209751) * added an option to set veryfied = "yes" parameter to GUI for registrant change and domain delete opertions (#116209751)

View file

@ -478,7 +478,8 @@ class Domain < ActiveRecord::Base
def validate_nameserver_ips def validate_nameserver_ips
nameservers.to_a.reject(&:marked_for_destruction?).each do |ns| nameservers.to_a.reject(&:marked_for_destruction?).each do |ns|
next unless ns.hostname.end_with?(".#{name}") next unless ns.hostname.end_with?(".#{name}")
next if ns.ipv4.present? next if ns.ipv4.present? || ns.ipv6.present?
errors.add(:nameservers, :invalid) if errors[:nameservers].blank? errors.add(:nameservers, :invalid) if errors[:nameservers].blank?
ns.errors.add(:ipv4, :blank) ns.errors.add(:ipv4, :blank)
end end

View file

@ -32,7 +32,7 @@ class Nameserver < ActiveRecord::Base
[:ipv4, :invalid, { value: { obj: 'hostAddr', val: ipv4 } }], [:ipv4, :invalid, { value: { obj: 'hostAddr', val: ipv4 } }],
[:ipv6, :invalid, { value: { obj: 'hostAddr', val: ipv6 } }] [:ipv6, :invalid, { value: { obj: 'hostAddr', val: ipv6 } }]
], ],
'2306' => [ '2003' => [
[:ipv4, :blank] [:ipv4, :blank]
] ]
} }

View file

@ -136,7 +136,7 @@ en:
taken: 'Nameserver already exists on this domain' taken: 'Nameserver already exists on this domain'
puny_to_long: 'Hostname puny label is too long (maximum is 63 characters)' puny_to_long: 'Hostname puny label is too long (maximum is 63 characters)'
ipv4: ipv4:
blank: 'IPv4 is missing' blank: 'IP is missing'
invalid: 'IPv4 is invalid' invalid: 'IPv4 is invalid'
ipv6: ipv6:
invalid: 'IPv6 is invalid' invalid: 'IPv6 is invalid'

View file

@ -11,8 +11,8 @@ class EppConstraint
# creates parsed_frame, detects epp request object # creates parsed_frame, detects epp request object
def matches?(request) def matches?(request)
# TODO: Maybe move this to controller to keep params clean # TODO: Maybe move this to controller to keep params clean
request.params[:raw_frame] = request.params[:raw_frame].gsub!(/(?<=>)(.*?)(?=<)/) { |s| s.strip} request.params[:raw_frame] = request.params[:raw_frame].gsub!(/(?<=>)(.*?)(?=<)/) { |s| s.strip} if request.params[:raw_frame]
request.params[:nokogiri_frame] ||= Nokogiri::XML(request.params[:raw_frame]) request.params[:nokogiri_frame] ||= Nokogiri::XML(request.params[:raw_frame] || request.params[:frame])
request.params[:parsed_frame] ||= request.params[:nokogiri_frame].dup.remove_namespaces! request.params[:parsed_frame] ||= request.params[:nokogiri_frame].dup.remove_namespaces!
unless [:keyrelay, :poll, :session, :not_found].include?(@type) unless [:keyrelay, :poll, :session, :not_found].include?(@type)